View
4
Download
0
Category
Preview:
Citation preview
Bing Maps for Enterprise ndash Inte gration dans une application WPF et pour la table Microsoft Surface
Sommaire Rappel des derniers eacuteveacutenements 4
Fin de vie du plugin 3D de la plateforme Bing Maps 4
Nouvelle version de la table Surface Surface 20 5
Reacutesumeacute des possibiliteacutes drsquointeacutegration 6
Preacutesentation deacutetailleacutee des solutions techniques 7
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7 7
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps 8
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7 9
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight 10
Utilisation drsquoune application Silverlight directement en WPF 11
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex 12
Utilisation du controcircle GreatMaps for WPF ndash CodePlex 13
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap 14
Deacuteveloppement personnaliseacute natif WPF 15
Cas particuliers de la table Microsoft Surface 16
La table Surface en version 1 (Microsoft Surface Table V1) 16
La table Surface en version 2 (Microsoft Surface Table V2) 17
Principales diffeacuterences 18
Aspect logiciel 19
Consideacuterations pour vos applications pour la table Surface V10 20
Evolution des deacuteveloppements 20
Conclusions 21
Autres pistes agrave explorer 21
A travers ce preacuteceacutedent article deacutedieacute agrave la reacutealisation drsquoapplication de cartographie agrave travers une
application WinForm etou WPF (Windows Presentation Foundation) nous avions deacutejagrave abordeacute certaines
techniques drsquoimpleacutementation en pondeacuterant chacune de ces solutions en fonction du contexte
Cet article a pour but drsquoaider les entreprises souhaitant effectuer la migration de leurs applications
existantes sur la table Surface (baseacutee sur lrsquoapplication Concierge le composant InfoStratVE ou
autreshellip) ou tout simplement inteacutegrer de la cartographie au sein drsquoapplication WPF ou WinForm
Au sein de Wygwam nous avons reacuteguliegraverement des demandes pour reacutealiser ce type
drsquoapplication ou de controcircle drsquointeacutegration permettant drsquoapporter des possibiliteacutes
cartographiques (affichage de carte utilisation des contenus) aux applicatifs utilisant la
technologie WPF
Crsquoest donc avec mon collegravegue Ludovic Czarnecki que jrsquoai pu tester les diffeacuterentes solutions techniques
preacutesenteacutees ci-dessous dans un contexte drsquoexeacutecution de la table Microsoft Surface V1
Nrsquoheacutesitez donc pas agrave nous contacter si vous avez ces besoins drsquointeacutegration ou si vous souhaitez
davantage drsquoinformations concernant une technique en particulier
Rappel des derniers eacuteveacutenements
Afin de comprendre la raison de cette mise agrave jour concernant les solutions drsquointeacutegration disponibles il
faut parcourir agrave nouveau lrsquoactualiteacute des derniers mois des technologies concerneacutees
Fin de vie du plugin 3D de la plateforme Bing Maps
Microsoft a annonceacute en novembre 2010 la fin de vie programmeacutee en novembre 2011 du plugin 3d
disponible depuis plusieurs anneacutees et surtout utilisable agrave travers lrsquoAPI en version 63
Ce plugin 3d est pourtant utiliseacute dans de nombreux cas pour inteacutegrer cette plateforme au sein
drsquoapplication WPF et plus particuliegraverement sur la table Surface V1
En effet lrsquoapplication Concierge mais eacutegalement le controcircle InfostratVE disponible sur CodePlex
utilisent ce plugin pour effectuer lrsquoaffichage
Degraves lors mecircme si ce plugin est installeacute (ou les assemblies neacutecessaires conserveacutees) rien ne garantit son
fonctionnement apregraves la date indiqueacutee notamment pour la reacutecupeacuteration du modegravele de terrain (DEM
Digital Elevation Model) ou pour les geacuteomeacutetries 3d des bacirctiments ou lieux connus
Bref le taux de peacuteneacutetration reacuteduit de ce plugin sur le poste grand public et lrsquoeacutevolution technologique ont
motiveacute Microsoft a stoppeacute lrsquoinvestissement sur ce dernier et agrave se concentrer sur drsquoautres possibiliteacutes de
preacutesentation et drsquoexploitation de ces informations et contenus 3D
Nouvelle version de la table Surface Surface 20
Lrsquoarriveacutee prochaine de la table Surface 20 avec une technologie diffeacuterente (voir plus bas) pour analyser
les contacts utilisateurs amegravene son lot de changement pour les deacuteveloppements reacutealiseacutes jusqursquoagrave preacutesent
La technologie logicielle impleacutementeacutee modifie eacutegalement les deacuteveloppements sur la table Surface
lrsquoensemble du SDK et du Framework deacutedieacute agrave ce produit en v2 a eacuteteacute modifieacute on nrsquoutilise par exemple
plus drsquoeacuteveacutenement de type Contact (speacutecifique agrave la table Surface v1) mais au contraire des eacuteveacutenements de
types Touch standard agrave lrsquoensemble des applications WPF deacutedieacutees au tactile
Reacutesumeacute des possibiliteacutes drsquointeacutegration
Drsquoune maniegravere geacuteneacuterale ces possibiliteacutes drsquointeacutegration concernent les applications WPF et WinForm
Les cas speacutecifiques associeacutes agrave la table Microsoft Surface sont abordeacutes plus bas
Voici avant de nous inteacuteresser aux deacutetails les diffeacuterentes techniques drsquoimpleacutementation listeacutees
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Utilisation drsquoune application Silverlight directement en WPF
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Utilisation drsquoun controcircle commercial deacutedieacute
o Controcircle Telerik ndash RadMap
Deacuteveloppement personnaliseacute natif WPF
Preacutesentation deacutetailleacutee des solutions techniques
Apregraves avoir reacutesumeacute les solutions nous allons nous inteacuteresser aux deacutetails drsquoimpleacutementation mais
eacutegalement aux avantages et inconveacutenients de chacun drsquoelles
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Description technique
Cette solution consiste agrave inteacutegrer une instance du controcircle WebBrowser qui charge une page HTML
distante ou un contenu HTML disponible en ressource inteacutegreacutee agrave lrsquoapplication
Il suffit alors ensuite drsquoutiliser les meacutethodes InvokeScript() sur le controcircle WebBrowser (ou
InvokeScript() sur la proprieacuteteacute Document du WebBrowser en WinForm) pour deacuteclencher du code
JavaScript depuis lrsquoapplication Net
Du cocircteacute client en JavaScript il suffit drsquoutiliser lrsquoeacuteleacutement windowexternal pour obtenir une reacutefeacuterence
vers lrsquoobjet passeacute dans la proprieacuteteacute ObjectForScripting du controcircle WebBrowser permettant ainsi de
pouvoir appeler les meacutethodes de lrsquoapplication Net depuis le code client
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Evolution aiseacutee des deacuteveloppements et
migration simple
Complexiteacute de deacuteveloppement
Inteacutegration simple du modegravele de licence de la
plateforme
Difficulteacutes possibles lors drsquoun
deacuteploiement multi-systegravemes
Mon avis
Cette solution permets drsquointeacutegrer une application cartographie utilisant le controcircle interactif Bing Maps
via lrsquoAPI AJAX v7 en utilisant des techniques connues pour le deacuteveloppement autour de lrsquoAPI
Le principal effort consiste agrave effectuer lrsquoensemble du code drsquointeropeacuterabiliteacute entre le
WebBrowserJavaScript et le code Net
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Description technique
En utilisant la mecircme technique que la preacuteceacutedente on charge cette fois une page contenant le controcircle
Silverlight de la plateforme Bing Maps
Voici un vue drsquoensemble de ce qui est opeacutereacute
Il suffit donc de reacutealise une application Net exposeacutee en COM et eacutetabli comme proprieacuteteacute
ObjectForScripting sur le composant WebBrowser
Le code JavaScript assure la communication entre lrsquoapplication WPF et le controcircle Silverlight
Le controcircle Silverlight expose ses meacutethodes comme eacutetant des ScriptableMember (en ajoutant
lrsquoattribut) et reacutefeacuterence lrsquoapplication comme ScriptableObject via la meacutethode
RegisterScriptableObject() du controcircle WebBrowser en permettant ainsi drsquoacceacuteder agrave ces diffeacuterents
attributs et meacutethodes
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Performances du controcircle Silverlight Complexiteacute important du deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative dans
lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette solution relativement proche de la preacuteceacutedente approche possegravede toujours les mecircmes limites en
termes drsquointeacutegration graphique mais permet drsquoexploiter les performances du controcircle Silverlight de Bing
Maps for Enterprise
La contrainte suppleacutementaire du plugin Silverlight augmente la complexiteacute du deacuteveloppement des
couches drsquointeropeacuterabiliteacutes (voir Article en 4 parties Bing Maps for Enterprise ndash Integration WPF
interopeacuterabiliteacute avec Silverlight) et neacutecessite une connaissance pointue des possibiliteacutes drsquointeropeacuterabiliteacute
de chaque brique applicative
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Description technique
A travers cette reacutealisation on souhaite utiliser le controcircle baseacute sur Chromium afin de charger la page
sous le mecircme mode que le WebBrowser standard
Avec ce controcircle on observe la possibiliteacute drsquointeacutegrer graphiquement le navigateur dans lrsquoapplication
WPF et drsquoopeacuterer des manipulations impossibles agrave reacutealiser avec le controcircle WebBrowser standard
rotation modification des dimensions transformations avanceacuteeshellip
Pour simplifier lrsquoutilisation de Chromium au sein drsquoune application WPF il est possible drsquoutiliser le
projet WPFChromium disponible via ces liens
Pour la version Net 30 et Net 35 httpwpfchromiumcodeplexcom
Pour la version Net 40 httpwpfchromium4codeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Utilisation du controcircle AJAX Complexiteacute de deacuteveloppement et
limitations drsquointeropeacuterabiliteacute
possibles
Inteacutegration simple du modegravele de
licence de la plateforme
Quid de lrsquoeacutevolution
Mon avis
Cette solution permets de srsquoaffranchir de la limite drsquointeacutegration graphique en effet avec le controcircle
navigateur alternatif il devient possible de le manipuler (taille orientationhellip) et surtout drsquoafficher des
eacuteleacutements par-dessus chose impossible en utilisant le controcircle WebBrowser de base
Cependant cette meacutethode preacutesente la limite preacutecise qursquoil srsquoagit drsquoune utilisation de composant non
supporteacute et drsquoune utilisation de lrsquoAPI AJAX de la plateforme Bing Maps for Enterprise dans un contexte
non supporteacute
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Description technique
En utilisant le controcircle navigateur baseacute sur Chromium agrave travers le wrapper deacutedieacute on charge une
application simple inteacutegrant le controcircle Silverlight de la plateforme Bing Maps for Enterprise
Le projet WPFChromium preacutesenteacute avec la solution preacuteceacutedente permet de reacutealiser cette inteacutegration mais
peut amener des difficulteacutes de chargement du contenu Silverlight
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Performances Problegraveme possible de compatibiliteacute
Silverlight
Possibiliteacute drsquointeacutegrer la logique
applicative dans lrsquoapplication
Silverlight
Evolution difficulteacute de
deacuteveloppement et limitations
drsquointeropeacuterabiliteacute possibles
Mon avis
Cette solution preacutesente de nombreux points de doutes avec notamment un gros souci de
compatibiliteacutesupport du controcircle navigateur tout comme le support Silverlight dans ce contexte
La complexiteacute de deacuteveloppement et les limitations possibles drsquointeropeacuterabiliteacute avec ce navigateur
alternatif devront faire lrsquoobjet drsquoune reflexion approfondie
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Sommaire Rappel des derniers eacuteveacutenements 4
Fin de vie du plugin 3D de la plateforme Bing Maps 4
Nouvelle version de la table Surface Surface 20 5
Reacutesumeacute des possibiliteacutes drsquointeacutegration 6
Preacutesentation deacutetailleacutee des solutions techniques 7
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7 7
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps 8
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7 9
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight 10
Utilisation drsquoune application Silverlight directement en WPF 11
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex 12
Utilisation du controcircle GreatMaps for WPF ndash CodePlex 13
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap 14
Deacuteveloppement personnaliseacute natif WPF 15
Cas particuliers de la table Microsoft Surface 16
La table Surface en version 1 (Microsoft Surface Table V1) 16
La table Surface en version 2 (Microsoft Surface Table V2) 17
Principales diffeacuterences 18
Aspect logiciel 19
Consideacuterations pour vos applications pour la table Surface V10 20
Evolution des deacuteveloppements 20
Conclusions 21
Autres pistes agrave explorer 21
A travers ce preacuteceacutedent article deacutedieacute agrave la reacutealisation drsquoapplication de cartographie agrave travers une
application WinForm etou WPF (Windows Presentation Foundation) nous avions deacutejagrave abordeacute certaines
techniques drsquoimpleacutementation en pondeacuterant chacune de ces solutions en fonction du contexte
Cet article a pour but drsquoaider les entreprises souhaitant effectuer la migration de leurs applications
existantes sur la table Surface (baseacutee sur lrsquoapplication Concierge le composant InfoStratVE ou
autreshellip) ou tout simplement inteacutegrer de la cartographie au sein drsquoapplication WPF ou WinForm
Au sein de Wygwam nous avons reacuteguliegraverement des demandes pour reacutealiser ce type
drsquoapplication ou de controcircle drsquointeacutegration permettant drsquoapporter des possibiliteacutes
cartographiques (affichage de carte utilisation des contenus) aux applicatifs utilisant la
technologie WPF
Crsquoest donc avec mon collegravegue Ludovic Czarnecki que jrsquoai pu tester les diffeacuterentes solutions techniques
preacutesenteacutees ci-dessous dans un contexte drsquoexeacutecution de la table Microsoft Surface V1
Nrsquoheacutesitez donc pas agrave nous contacter si vous avez ces besoins drsquointeacutegration ou si vous souhaitez
davantage drsquoinformations concernant une technique en particulier
Rappel des derniers eacuteveacutenements
Afin de comprendre la raison de cette mise agrave jour concernant les solutions drsquointeacutegration disponibles il
faut parcourir agrave nouveau lrsquoactualiteacute des derniers mois des technologies concerneacutees
Fin de vie du plugin 3D de la plateforme Bing Maps
Microsoft a annonceacute en novembre 2010 la fin de vie programmeacutee en novembre 2011 du plugin 3d
disponible depuis plusieurs anneacutees et surtout utilisable agrave travers lrsquoAPI en version 63
Ce plugin 3d est pourtant utiliseacute dans de nombreux cas pour inteacutegrer cette plateforme au sein
drsquoapplication WPF et plus particuliegraverement sur la table Surface V1
En effet lrsquoapplication Concierge mais eacutegalement le controcircle InfostratVE disponible sur CodePlex
utilisent ce plugin pour effectuer lrsquoaffichage
Degraves lors mecircme si ce plugin est installeacute (ou les assemblies neacutecessaires conserveacutees) rien ne garantit son
fonctionnement apregraves la date indiqueacutee notamment pour la reacutecupeacuteration du modegravele de terrain (DEM
Digital Elevation Model) ou pour les geacuteomeacutetries 3d des bacirctiments ou lieux connus
Bref le taux de peacuteneacutetration reacuteduit de ce plugin sur le poste grand public et lrsquoeacutevolution technologique ont
motiveacute Microsoft a stoppeacute lrsquoinvestissement sur ce dernier et agrave se concentrer sur drsquoautres possibiliteacutes de
preacutesentation et drsquoexploitation de ces informations et contenus 3D
Nouvelle version de la table Surface Surface 20
Lrsquoarriveacutee prochaine de la table Surface 20 avec une technologie diffeacuterente (voir plus bas) pour analyser
les contacts utilisateurs amegravene son lot de changement pour les deacuteveloppements reacutealiseacutes jusqursquoagrave preacutesent
La technologie logicielle impleacutementeacutee modifie eacutegalement les deacuteveloppements sur la table Surface
lrsquoensemble du SDK et du Framework deacutedieacute agrave ce produit en v2 a eacuteteacute modifieacute on nrsquoutilise par exemple
plus drsquoeacuteveacutenement de type Contact (speacutecifique agrave la table Surface v1) mais au contraire des eacuteveacutenements de
types Touch standard agrave lrsquoensemble des applications WPF deacutedieacutees au tactile
Reacutesumeacute des possibiliteacutes drsquointeacutegration
Drsquoune maniegravere geacuteneacuterale ces possibiliteacutes drsquointeacutegration concernent les applications WPF et WinForm
Les cas speacutecifiques associeacutes agrave la table Microsoft Surface sont abordeacutes plus bas
Voici avant de nous inteacuteresser aux deacutetails les diffeacuterentes techniques drsquoimpleacutementation listeacutees
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Utilisation drsquoune application Silverlight directement en WPF
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Utilisation drsquoun controcircle commercial deacutedieacute
o Controcircle Telerik ndash RadMap
Deacuteveloppement personnaliseacute natif WPF
Preacutesentation deacutetailleacutee des solutions techniques
Apregraves avoir reacutesumeacute les solutions nous allons nous inteacuteresser aux deacutetails drsquoimpleacutementation mais
eacutegalement aux avantages et inconveacutenients de chacun drsquoelles
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Description technique
Cette solution consiste agrave inteacutegrer une instance du controcircle WebBrowser qui charge une page HTML
distante ou un contenu HTML disponible en ressource inteacutegreacutee agrave lrsquoapplication
Il suffit alors ensuite drsquoutiliser les meacutethodes InvokeScript() sur le controcircle WebBrowser (ou
InvokeScript() sur la proprieacuteteacute Document du WebBrowser en WinForm) pour deacuteclencher du code
JavaScript depuis lrsquoapplication Net
Du cocircteacute client en JavaScript il suffit drsquoutiliser lrsquoeacuteleacutement windowexternal pour obtenir une reacutefeacuterence
vers lrsquoobjet passeacute dans la proprieacuteteacute ObjectForScripting du controcircle WebBrowser permettant ainsi de
pouvoir appeler les meacutethodes de lrsquoapplication Net depuis le code client
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Evolution aiseacutee des deacuteveloppements et
migration simple
Complexiteacute de deacuteveloppement
Inteacutegration simple du modegravele de licence de la
plateforme
Difficulteacutes possibles lors drsquoun
deacuteploiement multi-systegravemes
Mon avis
Cette solution permets drsquointeacutegrer une application cartographie utilisant le controcircle interactif Bing Maps
via lrsquoAPI AJAX v7 en utilisant des techniques connues pour le deacuteveloppement autour de lrsquoAPI
Le principal effort consiste agrave effectuer lrsquoensemble du code drsquointeropeacuterabiliteacute entre le
WebBrowserJavaScript et le code Net
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Description technique
En utilisant la mecircme technique que la preacuteceacutedente on charge cette fois une page contenant le controcircle
Silverlight de la plateforme Bing Maps
Voici un vue drsquoensemble de ce qui est opeacutereacute
Il suffit donc de reacutealise une application Net exposeacutee en COM et eacutetabli comme proprieacuteteacute
ObjectForScripting sur le composant WebBrowser
Le code JavaScript assure la communication entre lrsquoapplication WPF et le controcircle Silverlight
Le controcircle Silverlight expose ses meacutethodes comme eacutetant des ScriptableMember (en ajoutant
lrsquoattribut) et reacutefeacuterence lrsquoapplication comme ScriptableObject via la meacutethode
RegisterScriptableObject() du controcircle WebBrowser en permettant ainsi drsquoacceacuteder agrave ces diffeacuterents
attributs et meacutethodes
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Performances du controcircle Silverlight Complexiteacute important du deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative dans
lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette solution relativement proche de la preacuteceacutedente approche possegravede toujours les mecircmes limites en
termes drsquointeacutegration graphique mais permet drsquoexploiter les performances du controcircle Silverlight de Bing
Maps for Enterprise
La contrainte suppleacutementaire du plugin Silverlight augmente la complexiteacute du deacuteveloppement des
couches drsquointeropeacuterabiliteacutes (voir Article en 4 parties Bing Maps for Enterprise ndash Integration WPF
interopeacuterabiliteacute avec Silverlight) et neacutecessite une connaissance pointue des possibiliteacutes drsquointeropeacuterabiliteacute
de chaque brique applicative
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Description technique
A travers cette reacutealisation on souhaite utiliser le controcircle baseacute sur Chromium afin de charger la page
sous le mecircme mode que le WebBrowser standard
Avec ce controcircle on observe la possibiliteacute drsquointeacutegrer graphiquement le navigateur dans lrsquoapplication
WPF et drsquoopeacuterer des manipulations impossibles agrave reacutealiser avec le controcircle WebBrowser standard
rotation modification des dimensions transformations avanceacuteeshellip
Pour simplifier lrsquoutilisation de Chromium au sein drsquoune application WPF il est possible drsquoutiliser le
projet WPFChromium disponible via ces liens
Pour la version Net 30 et Net 35 httpwpfchromiumcodeplexcom
Pour la version Net 40 httpwpfchromium4codeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Utilisation du controcircle AJAX Complexiteacute de deacuteveloppement et
limitations drsquointeropeacuterabiliteacute
possibles
Inteacutegration simple du modegravele de
licence de la plateforme
Quid de lrsquoeacutevolution
Mon avis
Cette solution permets de srsquoaffranchir de la limite drsquointeacutegration graphique en effet avec le controcircle
navigateur alternatif il devient possible de le manipuler (taille orientationhellip) et surtout drsquoafficher des
eacuteleacutements par-dessus chose impossible en utilisant le controcircle WebBrowser de base
Cependant cette meacutethode preacutesente la limite preacutecise qursquoil srsquoagit drsquoune utilisation de composant non
supporteacute et drsquoune utilisation de lrsquoAPI AJAX de la plateforme Bing Maps for Enterprise dans un contexte
non supporteacute
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Description technique
En utilisant le controcircle navigateur baseacute sur Chromium agrave travers le wrapper deacutedieacute on charge une
application simple inteacutegrant le controcircle Silverlight de la plateforme Bing Maps for Enterprise
Le projet WPFChromium preacutesenteacute avec la solution preacuteceacutedente permet de reacutealiser cette inteacutegration mais
peut amener des difficulteacutes de chargement du contenu Silverlight
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Performances Problegraveme possible de compatibiliteacute
Silverlight
Possibiliteacute drsquointeacutegrer la logique
applicative dans lrsquoapplication
Silverlight
Evolution difficulteacute de
deacuteveloppement et limitations
drsquointeropeacuterabiliteacute possibles
Mon avis
Cette solution preacutesente de nombreux points de doutes avec notamment un gros souci de
compatibiliteacutesupport du controcircle navigateur tout comme le support Silverlight dans ce contexte
La complexiteacute de deacuteveloppement et les limitations possibles drsquointeropeacuterabiliteacute avec ce navigateur
alternatif devront faire lrsquoobjet drsquoune reflexion approfondie
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
A travers ce preacuteceacutedent article deacutedieacute agrave la reacutealisation drsquoapplication de cartographie agrave travers une
application WinForm etou WPF (Windows Presentation Foundation) nous avions deacutejagrave abordeacute certaines
techniques drsquoimpleacutementation en pondeacuterant chacune de ces solutions en fonction du contexte
Cet article a pour but drsquoaider les entreprises souhaitant effectuer la migration de leurs applications
existantes sur la table Surface (baseacutee sur lrsquoapplication Concierge le composant InfoStratVE ou
autreshellip) ou tout simplement inteacutegrer de la cartographie au sein drsquoapplication WPF ou WinForm
Au sein de Wygwam nous avons reacuteguliegraverement des demandes pour reacutealiser ce type
drsquoapplication ou de controcircle drsquointeacutegration permettant drsquoapporter des possibiliteacutes
cartographiques (affichage de carte utilisation des contenus) aux applicatifs utilisant la
technologie WPF
Crsquoest donc avec mon collegravegue Ludovic Czarnecki que jrsquoai pu tester les diffeacuterentes solutions techniques
preacutesenteacutees ci-dessous dans un contexte drsquoexeacutecution de la table Microsoft Surface V1
Nrsquoheacutesitez donc pas agrave nous contacter si vous avez ces besoins drsquointeacutegration ou si vous souhaitez
davantage drsquoinformations concernant une technique en particulier
Rappel des derniers eacuteveacutenements
Afin de comprendre la raison de cette mise agrave jour concernant les solutions drsquointeacutegration disponibles il
faut parcourir agrave nouveau lrsquoactualiteacute des derniers mois des technologies concerneacutees
Fin de vie du plugin 3D de la plateforme Bing Maps
Microsoft a annonceacute en novembre 2010 la fin de vie programmeacutee en novembre 2011 du plugin 3d
disponible depuis plusieurs anneacutees et surtout utilisable agrave travers lrsquoAPI en version 63
Ce plugin 3d est pourtant utiliseacute dans de nombreux cas pour inteacutegrer cette plateforme au sein
drsquoapplication WPF et plus particuliegraverement sur la table Surface V1
En effet lrsquoapplication Concierge mais eacutegalement le controcircle InfostratVE disponible sur CodePlex
utilisent ce plugin pour effectuer lrsquoaffichage
Degraves lors mecircme si ce plugin est installeacute (ou les assemblies neacutecessaires conserveacutees) rien ne garantit son
fonctionnement apregraves la date indiqueacutee notamment pour la reacutecupeacuteration du modegravele de terrain (DEM
Digital Elevation Model) ou pour les geacuteomeacutetries 3d des bacirctiments ou lieux connus
Bref le taux de peacuteneacutetration reacuteduit de ce plugin sur le poste grand public et lrsquoeacutevolution technologique ont
motiveacute Microsoft a stoppeacute lrsquoinvestissement sur ce dernier et agrave se concentrer sur drsquoautres possibiliteacutes de
preacutesentation et drsquoexploitation de ces informations et contenus 3D
Nouvelle version de la table Surface Surface 20
Lrsquoarriveacutee prochaine de la table Surface 20 avec une technologie diffeacuterente (voir plus bas) pour analyser
les contacts utilisateurs amegravene son lot de changement pour les deacuteveloppements reacutealiseacutes jusqursquoagrave preacutesent
La technologie logicielle impleacutementeacutee modifie eacutegalement les deacuteveloppements sur la table Surface
lrsquoensemble du SDK et du Framework deacutedieacute agrave ce produit en v2 a eacuteteacute modifieacute on nrsquoutilise par exemple
plus drsquoeacuteveacutenement de type Contact (speacutecifique agrave la table Surface v1) mais au contraire des eacuteveacutenements de
types Touch standard agrave lrsquoensemble des applications WPF deacutedieacutees au tactile
Reacutesumeacute des possibiliteacutes drsquointeacutegration
Drsquoune maniegravere geacuteneacuterale ces possibiliteacutes drsquointeacutegration concernent les applications WPF et WinForm
Les cas speacutecifiques associeacutes agrave la table Microsoft Surface sont abordeacutes plus bas
Voici avant de nous inteacuteresser aux deacutetails les diffeacuterentes techniques drsquoimpleacutementation listeacutees
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Utilisation drsquoune application Silverlight directement en WPF
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Utilisation drsquoun controcircle commercial deacutedieacute
o Controcircle Telerik ndash RadMap
Deacuteveloppement personnaliseacute natif WPF
Preacutesentation deacutetailleacutee des solutions techniques
Apregraves avoir reacutesumeacute les solutions nous allons nous inteacuteresser aux deacutetails drsquoimpleacutementation mais
eacutegalement aux avantages et inconveacutenients de chacun drsquoelles
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Description technique
Cette solution consiste agrave inteacutegrer une instance du controcircle WebBrowser qui charge une page HTML
distante ou un contenu HTML disponible en ressource inteacutegreacutee agrave lrsquoapplication
Il suffit alors ensuite drsquoutiliser les meacutethodes InvokeScript() sur le controcircle WebBrowser (ou
InvokeScript() sur la proprieacuteteacute Document du WebBrowser en WinForm) pour deacuteclencher du code
JavaScript depuis lrsquoapplication Net
Du cocircteacute client en JavaScript il suffit drsquoutiliser lrsquoeacuteleacutement windowexternal pour obtenir une reacutefeacuterence
vers lrsquoobjet passeacute dans la proprieacuteteacute ObjectForScripting du controcircle WebBrowser permettant ainsi de
pouvoir appeler les meacutethodes de lrsquoapplication Net depuis le code client
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Evolution aiseacutee des deacuteveloppements et
migration simple
Complexiteacute de deacuteveloppement
Inteacutegration simple du modegravele de licence de la
plateforme
Difficulteacutes possibles lors drsquoun
deacuteploiement multi-systegravemes
Mon avis
Cette solution permets drsquointeacutegrer une application cartographie utilisant le controcircle interactif Bing Maps
via lrsquoAPI AJAX v7 en utilisant des techniques connues pour le deacuteveloppement autour de lrsquoAPI
Le principal effort consiste agrave effectuer lrsquoensemble du code drsquointeropeacuterabiliteacute entre le
WebBrowserJavaScript et le code Net
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Description technique
En utilisant la mecircme technique que la preacuteceacutedente on charge cette fois une page contenant le controcircle
Silverlight de la plateforme Bing Maps
Voici un vue drsquoensemble de ce qui est opeacutereacute
Il suffit donc de reacutealise une application Net exposeacutee en COM et eacutetabli comme proprieacuteteacute
ObjectForScripting sur le composant WebBrowser
Le code JavaScript assure la communication entre lrsquoapplication WPF et le controcircle Silverlight
Le controcircle Silverlight expose ses meacutethodes comme eacutetant des ScriptableMember (en ajoutant
lrsquoattribut) et reacutefeacuterence lrsquoapplication comme ScriptableObject via la meacutethode
RegisterScriptableObject() du controcircle WebBrowser en permettant ainsi drsquoacceacuteder agrave ces diffeacuterents
attributs et meacutethodes
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Performances du controcircle Silverlight Complexiteacute important du deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative dans
lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette solution relativement proche de la preacuteceacutedente approche possegravede toujours les mecircmes limites en
termes drsquointeacutegration graphique mais permet drsquoexploiter les performances du controcircle Silverlight de Bing
Maps for Enterprise
La contrainte suppleacutementaire du plugin Silverlight augmente la complexiteacute du deacuteveloppement des
couches drsquointeropeacuterabiliteacutes (voir Article en 4 parties Bing Maps for Enterprise ndash Integration WPF
interopeacuterabiliteacute avec Silverlight) et neacutecessite une connaissance pointue des possibiliteacutes drsquointeropeacuterabiliteacute
de chaque brique applicative
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Description technique
A travers cette reacutealisation on souhaite utiliser le controcircle baseacute sur Chromium afin de charger la page
sous le mecircme mode que le WebBrowser standard
Avec ce controcircle on observe la possibiliteacute drsquointeacutegrer graphiquement le navigateur dans lrsquoapplication
WPF et drsquoopeacuterer des manipulations impossibles agrave reacutealiser avec le controcircle WebBrowser standard
rotation modification des dimensions transformations avanceacuteeshellip
Pour simplifier lrsquoutilisation de Chromium au sein drsquoune application WPF il est possible drsquoutiliser le
projet WPFChromium disponible via ces liens
Pour la version Net 30 et Net 35 httpwpfchromiumcodeplexcom
Pour la version Net 40 httpwpfchromium4codeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Utilisation du controcircle AJAX Complexiteacute de deacuteveloppement et
limitations drsquointeropeacuterabiliteacute
possibles
Inteacutegration simple du modegravele de
licence de la plateforme
Quid de lrsquoeacutevolution
Mon avis
Cette solution permets de srsquoaffranchir de la limite drsquointeacutegration graphique en effet avec le controcircle
navigateur alternatif il devient possible de le manipuler (taille orientationhellip) et surtout drsquoafficher des
eacuteleacutements par-dessus chose impossible en utilisant le controcircle WebBrowser de base
Cependant cette meacutethode preacutesente la limite preacutecise qursquoil srsquoagit drsquoune utilisation de composant non
supporteacute et drsquoune utilisation de lrsquoAPI AJAX de la plateforme Bing Maps for Enterprise dans un contexte
non supporteacute
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Description technique
En utilisant le controcircle navigateur baseacute sur Chromium agrave travers le wrapper deacutedieacute on charge une
application simple inteacutegrant le controcircle Silverlight de la plateforme Bing Maps for Enterprise
Le projet WPFChromium preacutesenteacute avec la solution preacuteceacutedente permet de reacutealiser cette inteacutegration mais
peut amener des difficulteacutes de chargement du contenu Silverlight
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Performances Problegraveme possible de compatibiliteacute
Silverlight
Possibiliteacute drsquointeacutegrer la logique
applicative dans lrsquoapplication
Silverlight
Evolution difficulteacute de
deacuteveloppement et limitations
drsquointeropeacuterabiliteacute possibles
Mon avis
Cette solution preacutesente de nombreux points de doutes avec notamment un gros souci de
compatibiliteacutesupport du controcircle navigateur tout comme le support Silverlight dans ce contexte
La complexiteacute de deacuteveloppement et les limitations possibles drsquointeropeacuterabiliteacute avec ce navigateur
alternatif devront faire lrsquoobjet drsquoune reflexion approfondie
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Rappel des derniers eacuteveacutenements
Afin de comprendre la raison de cette mise agrave jour concernant les solutions drsquointeacutegration disponibles il
faut parcourir agrave nouveau lrsquoactualiteacute des derniers mois des technologies concerneacutees
Fin de vie du plugin 3D de la plateforme Bing Maps
Microsoft a annonceacute en novembre 2010 la fin de vie programmeacutee en novembre 2011 du plugin 3d
disponible depuis plusieurs anneacutees et surtout utilisable agrave travers lrsquoAPI en version 63
Ce plugin 3d est pourtant utiliseacute dans de nombreux cas pour inteacutegrer cette plateforme au sein
drsquoapplication WPF et plus particuliegraverement sur la table Surface V1
En effet lrsquoapplication Concierge mais eacutegalement le controcircle InfostratVE disponible sur CodePlex
utilisent ce plugin pour effectuer lrsquoaffichage
Degraves lors mecircme si ce plugin est installeacute (ou les assemblies neacutecessaires conserveacutees) rien ne garantit son
fonctionnement apregraves la date indiqueacutee notamment pour la reacutecupeacuteration du modegravele de terrain (DEM
Digital Elevation Model) ou pour les geacuteomeacutetries 3d des bacirctiments ou lieux connus
Bref le taux de peacuteneacutetration reacuteduit de ce plugin sur le poste grand public et lrsquoeacutevolution technologique ont
motiveacute Microsoft a stoppeacute lrsquoinvestissement sur ce dernier et agrave se concentrer sur drsquoautres possibiliteacutes de
preacutesentation et drsquoexploitation de ces informations et contenus 3D
Nouvelle version de la table Surface Surface 20
Lrsquoarriveacutee prochaine de la table Surface 20 avec une technologie diffeacuterente (voir plus bas) pour analyser
les contacts utilisateurs amegravene son lot de changement pour les deacuteveloppements reacutealiseacutes jusqursquoagrave preacutesent
La technologie logicielle impleacutementeacutee modifie eacutegalement les deacuteveloppements sur la table Surface
lrsquoensemble du SDK et du Framework deacutedieacute agrave ce produit en v2 a eacuteteacute modifieacute on nrsquoutilise par exemple
plus drsquoeacuteveacutenement de type Contact (speacutecifique agrave la table Surface v1) mais au contraire des eacuteveacutenements de
types Touch standard agrave lrsquoensemble des applications WPF deacutedieacutees au tactile
Reacutesumeacute des possibiliteacutes drsquointeacutegration
Drsquoune maniegravere geacuteneacuterale ces possibiliteacutes drsquointeacutegration concernent les applications WPF et WinForm
Les cas speacutecifiques associeacutes agrave la table Microsoft Surface sont abordeacutes plus bas
Voici avant de nous inteacuteresser aux deacutetails les diffeacuterentes techniques drsquoimpleacutementation listeacutees
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Utilisation drsquoune application Silverlight directement en WPF
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Utilisation drsquoun controcircle commercial deacutedieacute
o Controcircle Telerik ndash RadMap
Deacuteveloppement personnaliseacute natif WPF
Preacutesentation deacutetailleacutee des solutions techniques
Apregraves avoir reacutesumeacute les solutions nous allons nous inteacuteresser aux deacutetails drsquoimpleacutementation mais
eacutegalement aux avantages et inconveacutenients de chacun drsquoelles
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Description technique
Cette solution consiste agrave inteacutegrer une instance du controcircle WebBrowser qui charge une page HTML
distante ou un contenu HTML disponible en ressource inteacutegreacutee agrave lrsquoapplication
Il suffit alors ensuite drsquoutiliser les meacutethodes InvokeScript() sur le controcircle WebBrowser (ou
InvokeScript() sur la proprieacuteteacute Document du WebBrowser en WinForm) pour deacuteclencher du code
JavaScript depuis lrsquoapplication Net
Du cocircteacute client en JavaScript il suffit drsquoutiliser lrsquoeacuteleacutement windowexternal pour obtenir une reacutefeacuterence
vers lrsquoobjet passeacute dans la proprieacuteteacute ObjectForScripting du controcircle WebBrowser permettant ainsi de
pouvoir appeler les meacutethodes de lrsquoapplication Net depuis le code client
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Evolution aiseacutee des deacuteveloppements et
migration simple
Complexiteacute de deacuteveloppement
Inteacutegration simple du modegravele de licence de la
plateforme
Difficulteacutes possibles lors drsquoun
deacuteploiement multi-systegravemes
Mon avis
Cette solution permets drsquointeacutegrer une application cartographie utilisant le controcircle interactif Bing Maps
via lrsquoAPI AJAX v7 en utilisant des techniques connues pour le deacuteveloppement autour de lrsquoAPI
Le principal effort consiste agrave effectuer lrsquoensemble du code drsquointeropeacuterabiliteacute entre le
WebBrowserJavaScript et le code Net
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Description technique
En utilisant la mecircme technique que la preacuteceacutedente on charge cette fois une page contenant le controcircle
Silverlight de la plateforme Bing Maps
Voici un vue drsquoensemble de ce qui est opeacutereacute
Il suffit donc de reacutealise une application Net exposeacutee en COM et eacutetabli comme proprieacuteteacute
ObjectForScripting sur le composant WebBrowser
Le code JavaScript assure la communication entre lrsquoapplication WPF et le controcircle Silverlight
Le controcircle Silverlight expose ses meacutethodes comme eacutetant des ScriptableMember (en ajoutant
lrsquoattribut) et reacutefeacuterence lrsquoapplication comme ScriptableObject via la meacutethode
RegisterScriptableObject() du controcircle WebBrowser en permettant ainsi drsquoacceacuteder agrave ces diffeacuterents
attributs et meacutethodes
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Performances du controcircle Silverlight Complexiteacute important du deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative dans
lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette solution relativement proche de la preacuteceacutedente approche possegravede toujours les mecircmes limites en
termes drsquointeacutegration graphique mais permet drsquoexploiter les performances du controcircle Silverlight de Bing
Maps for Enterprise
La contrainte suppleacutementaire du plugin Silverlight augmente la complexiteacute du deacuteveloppement des
couches drsquointeropeacuterabiliteacutes (voir Article en 4 parties Bing Maps for Enterprise ndash Integration WPF
interopeacuterabiliteacute avec Silverlight) et neacutecessite une connaissance pointue des possibiliteacutes drsquointeropeacuterabiliteacute
de chaque brique applicative
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Description technique
A travers cette reacutealisation on souhaite utiliser le controcircle baseacute sur Chromium afin de charger la page
sous le mecircme mode que le WebBrowser standard
Avec ce controcircle on observe la possibiliteacute drsquointeacutegrer graphiquement le navigateur dans lrsquoapplication
WPF et drsquoopeacuterer des manipulations impossibles agrave reacutealiser avec le controcircle WebBrowser standard
rotation modification des dimensions transformations avanceacuteeshellip
Pour simplifier lrsquoutilisation de Chromium au sein drsquoune application WPF il est possible drsquoutiliser le
projet WPFChromium disponible via ces liens
Pour la version Net 30 et Net 35 httpwpfchromiumcodeplexcom
Pour la version Net 40 httpwpfchromium4codeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Utilisation du controcircle AJAX Complexiteacute de deacuteveloppement et
limitations drsquointeropeacuterabiliteacute
possibles
Inteacutegration simple du modegravele de
licence de la plateforme
Quid de lrsquoeacutevolution
Mon avis
Cette solution permets de srsquoaffranchir de la limite drsquointeacutegration graphique en effet avec le controcircle
navigateur alternatif il devient possible de le manipuler (taille orientationhellip) et surtout drsquoafficher des
eacuteleacutements par-dessus chose impossible en utilisant le controcircle WebBrowser de base
Cependant cette meacutethode preacutesente la limite preacutecise qursquoil srsquoagit drsquoune utilisation de composant non
supporteacute et drsquoune utilisation de lrsquoAPI AJAX de la plateforme Bing Maps for Enterprise dans un contexte
non supporteacute
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Description technique
En utilisant le controcircle navigateur baseacute sur Chromium agrave travers le wrapper deacutedieacute on charge une
application simple inteacutegrant le controcircle Silverlight de la plateforme Bing Maps for Enterprise
Le projet WPFChromium preacutesenteacute avec la solution preacuteceacutedente permet de reacutealiser cette inteacutegration mais
peut amener des difficulteacutes de chargement du contenu Silverlight
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Performances Problegraveme possible de compatibiliteacute
Silverlight
Possibiliteacute drsquointeacutegrer la logique
applicative dans lrsquoapplication
Silverlight
Evolution difficulteacute de
deacuteveloppement et limitations
drsquointeropeacuterabiliteacute possibles
Mon avis
Cette solution preacutesente de nombreux points de doutes avec notamment un gros souci de
compatibiliteacutesupport du controcircle navigateur tout comme le support Silverlight dans ce contexte
La complexiteacute de deacuteveloppement et les limitations possibles drsquointeropeacuterabiliteacute avec ce navigateur
alternatif devront faire lrsquoobjet drsquoune reflexion approfondie
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Nouvelle version de la table Surface Surface 20
Lrsquoarriveacutee prochaine de la table Surface 20 avec une technologie diffeacuterente (voir plus bas) pour analyser
les contacts utilisateurs amegravene son lot de changement pour les deacuteveloppements reacutealiseacutes jusqursquoagrave preacutesent
La technologie logicielle impleacutementeacutee modifie eacutegalement les deacuteveloppements sur la table Surface
lrsquoensemble du SDK et du Framework deacutedieacute agrave ce produit en v2 a eacuteteacute modifieacute on nrsquoutilise par exemple
plus drsquoeacuteveacutenement de type Contact (speacutecifique agrave la table Surface v1) mais au contraire des eacuteveacutenements de
types Touch standard agrave lrsquoensemble des applications WPF deacutedieacutees au tactile
Reacutesumeacute des possibiliteacutes drsquointeacutegration
Drsquoune maniegravere geacuteneacuterale ces possibiliteacutes drsquointeacutegration concernent les applications WPF et WinForm
Les cas speacutecifiques associeacutes agrave la table Microsoft Surface sont abordeacutes plus bas
Voici avant de nous inteacuteresser aux deacutetails les diffeacuterentes techniques drsquoimpleacutementation listeacutees
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Utilisation drsquoune application Silverlight directement en WPF
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Utilisation drsquoun controcircle commercial deacutedieacute
o Controcircle Telerik ndash RadMap
Deacuteveloppement personnaliseacute natif WPF
Preacutesentation deacutetailleacutee des solutions techniques
Apregraves avoir reacutesumeacute les solutions nous allons nous inteacuteresser aux deacutetails drsquoimpleacutementation mais
eacutegalement aux avantages et inconveacutenients de chacun drsquoelles
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Description technique
Cette solution consiste agrave inteacutegrer une instance du controcircle WebBrowser qui charge une page HTML
distante ou un contenu HTML disponible en ressource inteacutegreacutee agrave lrsquoapplication
Il suffit alors ensuite drsquoutiliser les meacutethodes InvokeScript() sur le controcircle WebBrowser (ou
InvokeScript() sur la proprieacuteteacute Document du WebBrowser en WinForm) pour deacuteclencher du code
JavaScript depuis lrsquoapplication Net
Du cocircteacute client en JavaScript il suffit drsquoutiliser lrsquoeacuteleacutement windowexternal pour obtenir une reacutefeacuterence
vers lrsquoobjet passeacute dans la proprieacuteteacute ObjectForScripting du controcircle WebBrowser permettant ainsi de
pouvoir appeler les meacutethodes de lrsquoapplication Net depuis le code client
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Evolution aiseacutee des deacuteveloppements et
migration simple
Complexiteacute de deacuteveloppement
Inteacutegration simple du modegravele de licence de la
plateforme
Difficulteacutes possibles lors drsquoun
deacuteploiement multi-systegravemes
Mon avis
Cette solution permets drsquointeacutegrer une application cartographie utilisant le controcircle interactif Bing Maps
via lrsquoAPI AJAX v7 en utilisant des techniques connues pour le deacuteveloppement autour de lrsquoAPI
Le principal effort consiste agrave effectuer lrsquoensemble du code drsquointeropeacuterabiliteacute entre le
WebBrowserJavaScript et le code Net
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Description technique
En utilisant la mecircme technique que la preacuteceacutedente on charge cette fois une page contenant le controcircle
Silverlight de la plateforme Bing Maps
Voici un vue drsquoensemble de ce qui est opeacutereacute
Il suffit donc de reacutealise une application Net exposeacutee en COM et eacutetabli comme proprieacuteteacute
ObjectForScripting sur le composant WebBrowser
Le code JavaScript assure la communication entre lrsquoapplication WPF et le controcircle Silverlight
Le controcircle Silverlight expose ses meacutethodes comme eacutetant des ScriptableMember (en ajoutant
lrsquoattribut) et reacutefeacuterence lrsquoapplication comme ScriptableObject via la meacutethode
RegisterScriptableObject() du controcircle WebBrowser en permettant ainsi drsquoacceacuteder agrave ces diffeacuterents
attributs et meacutethodes
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Performances du controcircle Silverlight Complexiteacute important du deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative dans
lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette solution relativement proche de la preacuteceacutedente approche possegravede toujours les mecircmes limites en
termes drsquointeacutegration graphique mais permet drsquoexploiter les performances du controcircle Silverlight de Bing
Maps for Enterprise
La contrainte suppleacutementaire du plugin Silverlight augmente la complexiteacute du deacuteveloppement des
couches drsquointeropeacuterabiliteacutes (voir Article en 4 parties Bing Maps for Enterprise ndash Integration WPF
interopeacuterabiliteacute avec Silverlight) et neacutecessite une connaissance pointue des possibiliteacutes drsquointeropeacuterabiliteacute
de chaque brique applicative
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Description technique
A travers cette reacutealisation on souhaite utiliser le controcircle baseacute sur Chromium afin de charger la page
sous le mecircme mode que le WebBrowser standard
Avec ce controcircle on observe la possibiliteacute drsquointeacutegrer graphiquement le navigateur dans lrsquoapplication
WPF et drsquoopeacuterer des manipulations impossibles agrave reacutealiser avec le controcircle WebBrowser standard
rotation modification des dimensions transformations avanceacuteeshellip
Pour simplifier lrsquoutilisation de Chromium au sein drsquoune application WPF il est possible drsquoutiliser le
projet WPFChromium disponible via ces liens
Pour la version Net 30 et Net 35 httpwpfchromiumcodeplexcom
Pour la version Net 40 httpwpfchromium4codeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Utilisation du controcircle AJAX Complexiteacute de deacuteveloppement et
limitations drsquointeropeacuterabiliteacute
possibles
Inteacutegration simple du modegravele de
licence de la plateforme
Quid de lrsquoeacutevolution
Mon avis
Cette solution permets de srsquoaffranchir de la limite drsquointeacutegration graphique en effet avec le controcircle
navigateur alternatif il devient possible de le manipuler (taille orientationhellip) et surtout drsquoafficher des
eacuteleacutements par-dessus chose impossible en utilisant le controcircle WebBrowser de base
Cependant cette meacutethode preacutesente la limite preacutecise qursquoil srsquoagit drsquoune utilisation de composant non
supporteacute et drsquoune utilisation de lrsquoAPI AJAX de la plateforme Bing Maps for Enterprise dans un contexte
non supporteacute
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Description technique
En utilisant le controcircle navigateur baseacute sur Chromium agrave travers le wrapper deacutedieacute on charge une
application simple inteacutegrant le controcircle Silverlight de la plateforme Bing Maps for Enterprise
Le projet WPFChromium preacutesenteacute avec la solution preacuteceacutedente permet de reacutealiser cette inteacutegration mais
peut amener des difficulteacutes de chargement du contenu Silverlight
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Performances Problegraveme possible de compatibiliteacute
Silverlight
Possibiliteacute drsquointeacutegrer la logique
applicative dans lrsquoapplication
Silverlight
Evolution difficulteacute de
deacuteveloppement et limitations
drsquointeropeacuterabiliteacute possibles
Mon avis
Cette solution preacutesente de nombreux points de doutes avec notamment un gros souci de
compatibiliteacutesupport du controcircle navigateur tout comme le support Silverlight dans ce contexte
La complexiteacute de deacuteveloppement et les limitations possibles drsquointeropeacuterabiliteacute avec ce navigateur
alternatif devront faire lrsquoobjet drsquoune reflexion approfondie
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Reacutesumeacute des possibiliteacutes drsquointeacutegration
Drsquoune maniegravere geacuteneacuterale ces possibiliteacutes drsquointeacutegration concernent les applications WPF et WinForm
Les cas speacutecifiques associeacutes agrave la table Microsoft Surface sont abordeacutes plus bas
Voici avant de nous inteacuteresser aux deacutetails les diffeacuterentes techniques drsquoimpleacutementation listeacutees
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Utilisation drsquoune application Silverlight directement en WPF
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Utilisation drsquoun controcircle commercial deacutedieacute
o Controcircle Telerik ndash RadMap
Deacuteveloppement personnaliseacute natif WPF
Preacutesentation deacutetailleacutee des solutions techniques
Apregraves avoir reacutesumeacute les solutions nous allons nous inteacuteresser aux deacutetails drsquoimpleacutementation mais
eacutegalement aux avantages et inconveacutenients de chacun drsquoelles
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Description technique
Cette solution consiste agrave inteacutegrer une instance du controcircle WebBrowser qui charge une page HTML
distante ou un contenu HTML disponible en ressource inteacutegreacutee agrave lrsquoapplication
Il suffit alors ensuite drsquoutiliser les meacutethodes InvokeScript() sur le controcircle WebBrowser (ou
InvokeScript() sur la proprieacuteteacute Document du WebBrowser en WinForm) pour deacuteclencher du code
JavaScript depuis lrsquoapplication Net
Du cocircteacute client en JavaScript il suffit drsquoutiliser lrsquoeacuteleacutement windowexternal pour obtenir une reacutefeacuterence
vers lrsquoobjet passeacute dans la proprieacuteteacute ObjectForScripting du controcircle WebBrowser permettant ainsi de
pouvoir appeler les meacutethodes de lrsquoapplication Net depuis le code client
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Evolution aiseacutee des deacuteveloppements et
migration simple
Complexiteacute de deacuteveloppement
Inteacutegration simple du modegravele de licence de la
plateforme
Difficulteacutes possibles lors drsquoun
deacuteploiement multi-systegravemes
Mon avis
Cette solution permets drsquointeacutegrer une application cartographie utilisant le controcircle interactif Bing Maps
via lrsquoAPI AJAX v7 en utilisant des techniques connues pour le deacuteveloppement autour de lrsquoAPI
Le principal effort consiste agrave effectuer lrsquoensemble du code drsquointeropeacuterabiliteacute entre le
WebBrowserJavaScript et le code Net
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Description technique
En utilisant la mecircme technique que la preacuteceacutedente on charge cette fois une page contenant le controcircle
Silverlight de la plateforme Bing Maps
Voici un vue drsquoensemble de ce qui est opeacutereacute
Il suffit donc de reacutealise une application Net exposeacutee en COM et eacutetabli comme proprieacuteteacute
ObjectForScripting sur le composant WebBrowser
Le code JavaScript assure la communication entre lrsquoapplication WPF et le controcircle Silverlight
Le controcircle Silverlight expose ses meacutethodes comme eacutetant des ScriptableMember (en ajoutant
lrsquoattribut) et reacutefeacuterence lrsquoapplication comme ScriptableObject via la meacutethode
RegisterScriptableObject() du controcircle WebBrowser en permettant ainsi drsquoacceacuteder agrave ces diffeacuterents
attributs et meacutethodes
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Performances du controcircle Silverlight Complexiteacute important du deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative dans
lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette solution relativement proche de la preacuteceacutedente approche possegravede toujours les mecircmes limites en
termes drsquointeacutegration graphique mais permet drsquoexploiter les performances du controcircle Silverlight de Bing
Maps for Enterprise
La contrainte suppleacutementaire du plugin Silverlight augmente la complexiteacute du deacuteveloppement des
couches drsquointeropeacuterabiliteacutes (voir Article en 4 parties Bing Maps for Enterprise ndash Integration WPF
interopeacuterabiliteacute avec Silverlight) et neacutecessite une connaissance pointue des possibiliteacutes drsquointeropeacuterabiliteacute
de chaque brique applicative
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Description technique
A travers cette reacutealisation on souhaite utiliser le controcircle baseacute sur Chromium afin de charger la page
sous le mecircme mode que le WebBrowser standard
Avec ce controcircle on observe la possibiliteacute drsquointeacutegrer graphiquement le navigateur dans lrsquoapplication
WPF et drsquoopeacuterer des manipulations impossibles agrave reacutealiser avec le controcircle WebBrowser standard
rotation modification des dimensions transformations avanceacuteeshellip
Pour simplifier lrsquoutilisation de Chromium au sein drsquoune application WPF il est possible drsquoutiliser le
projet WPFChromium disponible via ces liens
Pour la version Net 30 et Net 35 httpwpfchromiumcodeplexcom
Pour la version Net 40 httpwpfchromium4codeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Utilisation du controcircle AJAX Complexiteacute de deacuteveloppement et
limitations drsquointeropeacuterabiliteacute
possibles
Inteacutegration simple du modegravele de
licence de la plateforme
Quid de lrsquoeacutevolution
Mon avis
Cette solution permets de srsquoaffranchir de la limite drsquointeacutegration graphique en effet avec le controcircle
navigateur alternatif il devient possible de le manipuler (taille orientationhellip) et surtout drsquoafficher des
eacuteleacutements par-dessus chose impossible en utilisant le controcircle WebBrowser de base
Cependant cette meacutethode preacutesente la limite preacutecise qursquoil srsquoagit drsquoune utilisation de composant non
supporteacute et drsquoune utilisation de lrsquoAPI AJAX de la plateforme Bing Maps for Enterprise dans un contexte
non supporteacute
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Description technique
En utilisant le controcircle navigateur baseacute sur Chromium agrave travers le wrapper deacutedieacute on charge une
application simple inteacutegrant le controcircle Silverlight de la plateforme Bing Maps for Enterprise
Le projet WPFChromium preacutesenteacute avec la solution preacuteceacutedente permet de reacutealiser cette inteacutegration mais
peut amener des difficulteacutes de chargement du contenu Silverlight
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Performances Problegraveme possible de compatibiliteacute
Silverlight
Possibiliteacute drsquointeacutegrer la logique
applicative dans lrsquoapplication
Silverlight
Evolution difficulteacute de
deacuteveloppement et limitations
drsquointeropeacuterabiliteacute possibles
Mon avis
Cette solution preacutesente de nombreux points de doutes avec notamment un gros souci de
compatibiliteacutesupport du controcircle navigateur tout comme le support Silverlight dans ce contexte
La complexiteacute de deacuteveloppement et les limitations possibles drsquointeropeacuterabiliteacute avec ce navigateur
alternatif devront faire lrsquoobjet drsquoune reflexion approfondie
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Preacutesentation deacutetailleacutee des solutions techniques
Apregraves avoir reacutesumeacute les solutions nous allons nous inteacuteresser aux deacutetails drsquoimpleacutementation mais
eacutegalement aux avantages et inconveacutenients de chacun drsquoelles
Utilisation du WebBrowser et de lrsquoAPI Bing Maps AJAX v7
Description technique
Cette solution consiste agrave inteacutegrer une instance du controcircle WebBrowser qui charge une page HTML
distante ou un contenu HTML disponible en ressource inteacutegreacutee agrave lrsquoapplication
Il suffit alors ensuite drsquoutiliser les meacutethodes InvokeScript() sur le controcircle WebBrowser (ou
InvokeScript() sur la proprieacuteteacute Document du WebBrowser en WinForm) pour deacuteclencher du code
JavaScript depuis lrsquoapplication Net
Du cocircteacute client en JavaScript il suffit drsquoutiliser lrsquoeacuteleacutement windowexternal pour obtenir une reacutefeacuterence
vers lrsquoobjet passeacute dans la proprieacuteteacute ObjectForScripting du controcircle WebBrowser permettant ainsi de
pouvoir appeler les meacutethodes de lrsquoapplication Net depuis le code client
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Evolution aiseacutee des deacuteveloppements et
migration simple
Complexiteacute de deacuteveloppement
Inteacutegration simple du modegravele de licence de la
plateforme
Difficulteacutes possibles lors drsquoun
deacuteploiement multi-systegravemes
Mon avis
Cette solution permets drsquointeacutegrer une application cartographie utilisant le controcircle interactif Bing Maps
via lrsquoAPI AJAX v7 en utilisant des techniques connues pour le deacuteveloppement autour de lrsquoAPI
Le principal effort consiste agrave effectuer lrsquoensemble du code drsquointeropeacuterabiliteacute entre le
WebBrowserJavaScript et le code Net
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Description technique
En utilisant la mecircme technique que la preacuteceacutedente on charge cette fois une page contenant le controcircle
Silverlight de la plateforme Bing Maps
Voici un vue drsquoensemble de ce qui est opeacutereacute
Il suffit donc de reacutealise une application Net exposeacutee en COM et eacutetabli comme proprieacuteteacute
ObjectForScripting sur le composant WebBrowser
Le code JavaScript assure la communication entre lrsquoapplication WPF et le controcircle Silverlight
Le controcircle Silverlight expose ses meacutethodes comme eacutetant des ScriptableMember (en ajoutant
lrsquoattribut) et reacutefeacuterence lrsquoapplication comme ScriptableObject via la meacutethode
RegisterScriptableObject() du controcircle WebBrowser en permettant ainsi drsquoacceacuteder agrave ces diffeacuterents
attributs et meacutethodes
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Performances du controcircle Silverlight Complexiteacute important du deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative dans
lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette solution relativement proche de la preacuteceacutedente approche possegravede toujours les mecircmes limites en
termes drsquointeacutegration graphique mais permet drsquoexploiter les performances du controcircle Silverlight de Bing
Maps for Enterprise
La contrainte suppleacutementaire du plugin Silverlight augmente la complexiteacute du deacuteveloppement des
couches drsquointeropeacuterabiliteacutes (voir Article en 4 parties Bing Maps for Enterprise ndash Integration WPF
interopeacuterabiliteacute avec Silverlight) et neacutecessite une connaissance pointue des possibiliteacutes drsquointeropeacuterabiliteacute
de chaque brique applicative
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Description technique
A travers cette reacutealisation on souhaite utiliser le controcircle baseacute sur Chromium afin de charger la page
sous le mecircme mode que le WebBrowser standard
Avec ce controcircle on observe la possibiliteacute drsquointeacutegrer graphiquement le navigateur dans lrsquoapplication
WPF et drsquoopeacuterer des manipulations impossibles agrave reacutealiser avec le controcircle WebBrowser standard
rotation modification des dimensions transformations avanceacuteeshellip
Pour simplifier lrsquoutilisation de Chromium au sein drsquoune application WPF il est possible drsquoutiliser le
projet WPFChromium disponible via ces liens
Pour la version Net 30 et Net 35 httpwpfchromiumcodeplexcom
Pour la version Net 40 httpwpfchromium4codeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Utilisation du controcircle AJAX Complexiteacute de deacuteveloppement et
limitations drsquointeropeacuterabiliteacute
possibles
Inteacutegration simple du modegravele de
licence de la plateforme
Quid de lrsquoeacutevolution
Mon avis
Cette solution permets de srsquoaffranchir de la limite drsquointeacutegration graphique en effet avec le controcircle
navigateur alternatif il devient possible de le manipuler (taille orientationhellip) et surtout drsquoafficher des
eacuteleacutements par-dessus chose impossible en utilisant le controcircle WebBrowser de base
Cependant cette meacutethode preacutesente la limite preacutecise qursquoil srsquoagit drsquoune utilisation de composant non
supporteacute et drsquoune utilisation de lrsquoAPI AJAX de la plateforme Bing Maps for Enterprise dans un contexte
non supporteacute
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Description technique
En utilisant le controcircle navigateur baseacute sur Chromium agrave travers le wrapper deacutedieacute on charge une
application simple inteacutegrant le controcircle Silverlight de la plateforme Bing Maps for Enterprise
Le projet WPFChromium preacutesenteacute avec la solution preacuteceacutedente permet de reacutealiser cette inteacutegration mais
peut amener des difficulteacutes de chargement du contenu Silverlight
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Performances Problegraveme possible de compatibiliteacute
Silverlight
Possibiliteacute drsquointeacutegrer la logique
applicative dans lrsquoapplication
Silverlight
Evolution difficulteacute de
deacuteveloppement et limitations
drsquointeropeacuterabiliteacute possibles
Mon avis
Cette solution preacutesente de nombreux points de doutes avec notamment un gros souci de
compatibiliteacutesupport du controcircle navigateur tout comme le support Silverlight dans ce contexte
La complexiteacute de deacuteveloppement et les limitations possibles drsquointeropeacuterabiliteacute avec ce navigateur
alternatif devront faire lrsquoobjet drsquoune reflexion approfondie
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Utilisation du WebBrowser et du controcircle Silverlight de Bing Maps
Description technique
En utilisant la mecircme technique que la preacuteceacutedente on charge cette fois une page contenant le controcircle
Silverlight de la plateforme Bing Maps
Voici un vue drsquoensemble de ce qui est opeacutereacute
Il suffit donc de reacutealise une application Net exposeacutee en COM et eacutetabli comme proprieacuteteacute
ObjectForScripting sur le composant WebBrowser
Le code JavaScript assure la communication entre lrsquoapplication WPF et le controcircle Silverlight
Le controcircle Silverlight expose ses meacutethodes comme eacutetant des ScriptableMember (en ajoutant
lrsquoattribut) et reacutefeacuterence lrsquoapplication comme ScriptableObject via la meacutethode
RegisterScriptableObject() du controcircle WebBrowser en permettant ainsi drsquoacceacuteder agrave ces diffeacuterents
attributs et meacutethodes
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee Inteacutegration graphique limiteacutee
Performances du controcircle Silverlight Complexiteacute important du deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative dans
lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette solution relativement proche de la preacuteceacutedente approche possegravede toujours les mecircmes limites en
termes drsquointeacutegration graphique mais permet drsquoexploiter les performances du controcircle Silverlight de Bing
Maps for Enterprise
La contrainte suppleacutementaire du plugin Silverlight augmente la complexiteacute du deacuteveloppement des
couches drsquointeropeacuterabiliteacutes (voir Article en 4 parties Bing Maps for Enterprise ndash Integration WPF
interopeacuterabiliteacute avec Silverlight) et neacutecessite une connaissance pointue des possibiliteacutes drsquointeropeacuterabiliteacute
de chaque brique applicative
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Description technique
A travers cette reacutealisation on souhaite utiliser le controcircle baseacute sur Chromium afin de charger la page
sous le mecircme mode que le WebBrowser standard
Avec ce controcircle on observe la possibiliteacute drsquointeacutegrer graphiquement le navigateur dans lrsquoapplication
WPF et drsquoopeacuterer des manipulations impossibles agrave reacutealiser avec le controcircle WebBrowser standard
rotation modification des dimensions transformations avanceacuteeshellip
Pour simplifier lrsquoutilisation de Chromium au sein drsquoune application WPF il est possible drsquoutiliser le
projet WPFChromium disponible via ces liens
Pour la version Net 30 et Net 35 httpwpfchromiumcodeplexcom
Pour la version Net 40 httpwpfchromium4codeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Utilisation du controcircle AJAX Complexiteacute de deacuteveloppement et
limitations drsquointeropeacuterabiliteacute
possibles
Inteacutegration simple du modegravele de
licence de la plateforme
Quid de lrsquoeacutevolution
Mon avis
Cette solution permets de srsquoaffranchir de la limite drsquointeacutegration graphique en effet avec le controcircle
navigateur alternatif il devient possible de le manipuler (taille orientationhellip) et surtout drsquoafficher des
eacuteleacutements par-dessus chose impossible en utilisant le controcircle WebBrowser de base
Cependant cette meacutethode preacutesente la limite preacutecise qursquoil srsquoagit drsquoune utilisation de composant non
supporteacute et drsquoune utilisation de lrsquoAPI AJAX de la plateforme Bing Maps for Enterprise dans un contexte
non supporteacute
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Description technique
En utilisant le controcircle navigateur baseacute sur Chromium agrave travers le wrapper deacutedieacute on charge une
application simple inteacutegrant le controcircle Silverlight de la plateforme Bing Maps for Enterprise
Le projet WPFChromium preacutesenteacute avec la solution preacuteceacutedente permet de reacutealiser cette inteacutegration mais
peut amener des difficulteacutes de chargement du contenu Silverlight
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Performances Problegraveme possible de compatibiliteacute
Silverlight
Possibiliteacute drsquointeacutegrer la logique
applicative dans lrsquoapplication
Silverlight
Evolution difficulteacute de
deacuteveloppement et limitations
drsquointeropeacuterabiliteacute possibles
Mon avis
Cette solution preacutesente de nombreux points de doutes avec notamment un gros souci de
compatibiliteacutesupport du controcircle navigateur tout comme le support Silverlight dans ce contexte
La complexiteacute de deacuteveloppement et les limitations possibles drsquointeropeacuterabiliteacute avec ce navigateur
alternatif devront faire lrsquoobjet drsquoune reflexion approfondie
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Utilisation drsquoun navigateur alternatif et de lrsquoAPI Bing Maps AJAX V7
Description technique
A travers cette reacutealisation on souhaite utiliser le controcircle baseacute sur Chromium afin de charger la page
sous le mecircme mode que le WebBrowser standard
Avec ce controcircle on observe la possibiliteacute drsquointeacutegrer graphiquement le navigateur dans lrsquoapplication
WPF et drsquoopeacuterer des manipulations impossibles agrave reacutealiser avec le controcircle WebBrowser standard
rotation modification des dimensions transformations avanceacuteeshellip
Pour simplifier lrsquoutilisation de Chromium au sein drsquoune application WPF il est possible drsquoutiliser le
projet WPFChromium disponible via ces liens
Pour la version Net 30 et Net 35 httpwpfchromiumcodeplexcom
Pour la version Net 40 httpwpfchromium4codeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Utilisation du controcircle AJAX Complexiteacute de deacuteveloppement et
limitations drsquointeropeacuterabiliteacute
possibles
Inteacutegration simple du modegravele de
licence de la plateforme
Quid de lrsquoeacutevolution
Mon avis
Cette solution permets de srsquoaffranchir de la limite drsquointeacutegration graphique en effet avec le controcircle
navigateur alternatif il devient possible de le manipuler (taille orientationhellip) et surtout drsquoafficher des
eacuteleacutements par-dessus chose impossible en utilisant le controcircle WebBrowser de base
Cependant cette meacutethode preacutesente la limite preacutecise qursquoil srsquoagit drsquoune utilisation de composant non
supporteacute et drsquoune utilisation de lrsquoAPI AJAX de la plateforme Bing Maps for Enterprise dans un contexte
non supporteacute
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Description technique
En utilisant le controcircle navigateur baseacute sur Chromium agrave travers le wrapper deacutedieacute on charge une
application simple inteacutegrant le controcircle Silverlight de la plateforme Bing Maps for Enterprise
Le projet WPFChromium preacutesenteacute avec la solution preacuteceacutedente permet de reacutealiser cette inteacutegration mais
peut amener des difficulteacutes de chargement du contenu Silverlight
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Performances Problegraveme possible de compatibiliteacute
Silverlight
Possibiliteacute drsquointeacutegrer la logique
applicative dans lrsquoapplication
Silverlight
Evolution difficulteacute de
deacuteveloppement et limitations
drsquointeropeacuterabiliteacute possibles
Mon avis
Cette solution preacutesente de nombreux points de doutes avec notamment un gros souci de
compatibiliteacutesupport du controcircle navigateur tout comme le support Silverlight dans ce contexte
La complexiteacute de deacuteveloppement et les limitations possibles drsquointeropeacuterabiliteacute avec ce navigateur
alternatif devront faire lrsquoobjet drsquoune reflexion approfondie
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Utilisation drsquoun navigateur alternatif et du controcircle Silverlight
Description technique
En utilisant le controcircle navigateur baseacute sur Chromium agrave travers le wrapper deacutedieacute on charge une
application simple inteacutegrant le controcircle Silverlight de la plateforme Bing Maps for Enterprise
Le projet WPFChromium preacutesenteacute avec la solution preacuteceacutedente permet de reacutealiser cette inteacutegration mais
peut amener des difficulteacutes de chargement du contenu Silverlight
Analyse
Avantages Inconveacutenients
Inteacutegration graphique faciliteacutee Meacutethode non-supporteacutee
Performances Problegraveme possible de compatibiliteacute
Silverlight
Possibiliteacute drsquointeacutegrer la logique
applicative dans lrsquoapplication
Silverlight
Evolution difficulteacute de
deacuteveloppement et limitations
drsquointeropeacuterabiliteacute possibles
Mon avis
Cette solution preacutesente de nombreux points de doutes avec notamment un gros souci de
compatibiliteacutesupport du controcircle navigateur tout comme le support Silverlight dans ce contexte
La complexiteacute de deacuteveloppement et les limitations possibles drsquointeropeacuterabiliteacute avec ce navigateur
alternatif devront faire lrsquoobjet drsquoune reflexion approfondie
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Utilisation drsquoune application Silverlight directement en WPF
Description technique
En reacutealisant une application Silverlight inteacutegrant le controcircle Silverlight de Bing Maps for Enterprise on
utilise directement ce composant au sein de lrsquoapplication WPF
Pour cela plusieurs techniques possibles dont voici quelques liens utiles
httpmsdnmicrosoftcomen-uslibraryff921109(v=pandp40)aspx
httpblogsmsdncombclrteamarchive20091201sharing-silverlight-assemblies-with-net-
appsaspx
httpkarlshifflettwordpresscom20091119silverlight-3-4-library-sharing-with-net-4-0-
library-or-wpf
httpmsdnmicrosoftcomen-uslibrarycc903925(VS95)aspx
httpjmorrillhjtcentralcomHometabid428EntryId446Differences-between-WPF-and-
Silverlight-Rendering-Stacksaspx
Un projet CodePlex facilite cette inteacutegration il srsquoagit de SilverlightViewport deacuteveloppeacute par Jeremiah
Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de preacutesentation)
Ce projet est disponible via ce lien httpsilverlightviewportcodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Meacutethode non supporteacutee
Performance du controcircle Silverlight Complexiteacute de deacuteveloppement
Possibiliteacute drsquointeacutegrer la logique applicative
dans lrsquoapplication Silverlight
Deacutependance au plugin Silverlight
Mon avis
Cette technique drsquoimpleacutementation est assez deacutelicate agrave mettre en place et neacutecessite une connaissance
pointue des technologies WPF et Silverlight
Elle preacutesente toutefois un avantage notable elle permet en effet de srsquointeacutegrer de maniegravere parfaite en
WPF et nrsquoimpose pas de deacutependance agrave un quelconque controcircle navigateur
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Utilisation du plugin 3d agrave travers le controcircle InfoStratVE ndash CodePlex
Description technique
Cette solution technique repose sur lrsquoutilisation du plugin 3d disponible avec la version 63 et qui est
utiliseacute au sein drsquoune surface Direct3D directement au sein de WPF
Le projet InfoStratVE disponible sur CodePlex et deacuteveloppeacute par InfoStrat fournit la couche de
manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des eacuteveacutenements et la
manipulation du composant natif
Analyse
Avantages Inconveacutenients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Meacutethode non supporteacutee
Inteacutegration WPF et simpliciteacute du
deacuteveloppement
Nombre drsquoinstance simultaneacutee limiteacutee du
controcircle
Mon avis
Cette solution fonctionne agrave merveille et permets de proposer des performances eacuteleveacutees et une expeacuterience
3d qui se combine agrave merveille sur les applications Surface
Cependant la fin de vie programmeacutee du plugin 3D de la plateforme Bing Maps for Enterprise impose agrave
chacun de consideacuterer cette solution comme obsolegravete et mecircme agrave remplacer dans un futur proche compte
tenu de lrsquoeacutevolution prochaine de la plateforme relativement incertaine vis agrave vis de ce plugin 3D
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Utilisation du controcircle GreatMaps for WPF ndash CodePlex
Description technique
La solution technique employeacutee utilise un controcircle natif WPF (ou WinForm et mecircme Windows
Mobile) qui repose sur un fonctionnement standard de geacuteneacuteration de tuile
Le controcircle est disponible au sein du projet GreatMap heacutebergeacute sur CodePlex rend possible
lrsquoaffichage de cartes chargeacutees sous formes de tuiles
Voici le lien vers ce projet httpgreatmapscodeplexcom
Analyse
Avantages Inconveacutenients
Inteacutegration WPF Support limiteacute
Simpliciteacute du deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Evolution deacutelicate du controcircle vis agrave
vis des services de la plateforme
Performances
Mon avis
Cette solution meacuterite le deacutetour puisque dans la version actuelle on dispose drsquoun controcircle deacutedieacute agrave
WinForm et un autre agrave WPF
Le controcircle permet drsquoutiliser de multiples fournisseurs de carte (Bing Maps for Enterprise OSM
Google Mapshellip) et simplifie grandement le deacuteveloppement et lrsquointeacutegration drsquoune carte performante dans
vos applications WPF
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Utilisation drsquoun controcircle commercial deacutedieacute ndash Telerik RadMap
Description technique
En utilisant le controcircle RadMap de la librairie proposeacutee par Telerik on obtient un composant
cartographique multifournisseur permettant drsquoafficher des cartes nativement en WPF
Le controcircle tente de reproduire le comportement et le rendu disponible dans celui proposeacute en Silverlight
reposant sur la technologie DeepZoom
Analyse
Avantages Inconveacutenients
Meacutethode supporteacutee par Telerik Performances et expeacuterience relativement
limiteacutees
Simpliciteacute de deacuteveloppement et possibiliteacute
de changement de fournisseur de contenu
Composant commercial et licence associeacutee
Inteacutegration WPF Evolution du composant
Mon avis
Cette solution commerciale preacutesente un controcircle simple agrave utiliser mais qui nrsquoapporte pas une expeacuterience
utilisateur suffisante pour approcher celle du controcircle AJAX ou Silverlight
Lrsquoaspect commercial de la solution nrsquoest eacutegalement pas lagrave pour simplifier la mise en place au sein drsquoun
projet client
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Deacuteveloppement personnaliseacute natif WPF
Description technique
La solution la plus radicale consiste agrave recreacuteer soi-mecircme un controcircle en WPF natif utilisant des eacuteleacutements
standards pour charger une carte agrave travers un canvas deacutedieacute
Analyse
Avantages Inconveacutenients
Maitrise complegravete du deacuteveloppement Complexiteacute de deacuteveloppement
Inteacutegration WPF et performances Coucirct lieacute
Evolution du controcircle vis agrave vis de la
plateforme
Probleacutematique drsquoeacutevolution de
performances de test et charges
Mon avis
Certainement lrsquooption la plus permissive peu importe lrsquoexploitation du controcircle qui est faite cette
solution a cependant des inconveacutenients notables puisqursquoelle neacutecessite un deacuteveloppement personnaliseacute
qui peut tregraves vite devenir couteux en temps et tregraves deacutelicat agrave appreacutehender
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Cas particuliers de la table Microsoft Surface
La table Surface de Microsoft se preacutesente agrave preacutesent en 2 versions distinctes que je choisis ici de
preacutesenter briegravevement Nous allons ensuite nous inteacuteresser au cas speacutecifique des applications srsquoexeacutecutant
sur ce type de peacuteripheacuterique
Le deacutetail complet et des articles explicatifs preacutecis sont disponibles sur la MSDN
httpmsdnmicrosoftcomen-uslibraryee804845(v=Surface10)aspx
La table Surface en version 1 (Microsoft Surface Table V1)
La premiegravere version a eacuteteacute rendue disponible agrave partir de 2009 et reposait sur une technologie de
reconnaissance de forme utilisant des cameacuteras inteacutegreacutees agrave la table qui se preacutesente comme cela
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
La table Surface en version 2 (Microsoft Surface Table V2)
La seconde version a eacuteteacute annonceacutee et devrait ecirctre commercialiseacutee dans le second semestre 2011
Pour reacutealiser la reconnaissance de forme et la deacutetection des interactions utilisateurs Samsung et
Microsoft ont mis au point une technologie baptiseacutee PixelSense qui srsquoappuie sur un reacuteseau de LED
Infrarouge et une couche de deacutetection optique capturant le reacutesultat reacutefleacutechie de lrsquoinfrarouge
Pour plus drsquoinformations sur la technologie PixelSense utiliseacutee au sein de cette Surface 20 nrsquoheacutesitez
pas agrave vous rendre sur le site deacutedieacute httpwwwmicrosoftcomsurfaceenuspixelsenseaspx
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Principales diffeacuterences
Forme mateacuteriel et technologie
La table Surface V1 pegravese 70 Kg et utilise une technologie de reconnaissance de forme baseacute sur un reacuteseau
de cameacutera
La table Surface V2 quant agrave elle preacutesente un poids moindre (40 Kg) et donne la possibiliteacute drsquoecirctre orienteacute
et mecircme ecirctre disposeacutee sur un mur Une eacutepaisseur de seulement une dizaine de centimegravetre gracircce agrave
lrsquoutilisation de la technologie PixelSense
Evidemment la configuration mateacuterielle (le PC qui exeacutecute les applications) a aussi connu une cure de
jouvence Le systegraveme drsquoexploitation est logiquement changeacute pour passer de Windows Vista (v1) agrave
Windows 7 (v2)
En reacutesumeacute
Surface V10 Surface V20
Ecran 30rdquo XGA projecteur avec
surface polie
40rdquo LCD avec une vitre de
type Gorilla Glass
Reacutesolution 1024 768 1920 1080 (HD 1080p)
Technologie
multitouch
Reacuteseau de projecteur et de 5
cameacuteras
52 contacts simultaneacutes
PixelSense
50 contacts simultaneacutes
Dimensions 56 cm drsquoeacutepaisseur
686 cm de large pour la
surface
572 cm de large pour la
base
108 cm de long
10 cm drsquoeacutepaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale
(inclinable)
Processeur Intel Core 2 Duo (213 Ghz) AMD Athlon II X2 Dual-
Core Processor 29GHz
Carte
graphique
ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 tmin 320 Go SATA 7200 tmin
Support HDMI Non Oui
Systegraveme Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coucirct 12 500 $ 9000 euro env 7 600 $ 5 400 euro env
Sources
httptechnetmicrosoftcomen-uslibraryee692114(Surface10)aspx
httpctlabsblogspotcom201101microsoft-surface-20-multi-touch-wonderhtml
httpenwikipediaorgwikiMicrosoft_SurfaceSurface_20
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Aspect logiciel
Fondamentalement la technologie utiliseacutee reste identique puisqursquoil srsquoagit dans
les 2 versions drsquoun Framework baseacute sur WPF Il est eacutegalement possible de
reacutealiser des applications en XNA sur ce type de peacuteripheacuterique
Le gros point de diffeacuterence reacuteside dans la maniegravere de geacuterer les contacts qui dans
la premiegravere version eacutetaient des ContactEvent (avec des proprieacuteteacutes deacutedieacutees)
Le nouveau SDK ainsi que les outils de deacuteveloppement ou de simulation de la
table Surface ont eux aussi eacuteteacute mis agrave jour avec notamment un simulateur
ameacutelioreacute de la table
Enfin eacutevidemment le Framework Surface a eacuteteacute eacutetendu avec de nouveaux
controcircles et nouvelles possibiliteacutes disponibles agrave travers ce lien
httpwwwmicrosoftcomdownloadendetailsaspxid=26716
Concernant la migration drsquoune application Surface v1 vers Surface v2 pour les cas simples il est
possible drsquoutiliser le PowerToy fourni par Microsoft et preacutesenteacute agrave travers le lien suivant
httpmsdnmicrosoftcomen-uslibrarygg697146aspx
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Consideacuterations pour vos applications pour la table Surface V10
La table Surface v10 repose sur une couche de capture des eacuteveacutenements qui srsquoopegravere au-dessus de
lrsquoapplication WPF Il faut alors pouvoir capturer ses contacts au-dessus des composants utiliseacutes et
bindeacutes ces derniers sur une manipulation WPF adapteacutee
Les solutions reposant sur lrsquoutilisation du controcircle WebBrowser ne peuvent pas fonctionner en
manipulation directe de la carte on ne peut donc pas capturer les contacts au-dessus drsquoun controcircle
WebBrowser classique
En effet ce controcircle existe depuis les anciennes versions du Framework et repose sur un controcircle Win32
et le rendu srsquoopegravere au dessus de tout controcircle WPF et eacutegalement au-dessus de la couche de capture des
contacts Degraves lors il est donc impossible drsquoobtenir un eacuteveacutenement de contact au-dessus de la page
heacutebergeacute par le controcircle WebBrowser
Evolution des deacuteveloppements
Les applications deacuteveloppeacutees pour la table Surface seront les mecircmes que ceux des tablettes Windows 7
ou des PC avec eacutecran tactiles Elles seront naturellement compatibles sur PC avec une simple souris
Ce qui inteacuteressant dans ce cas crsquoest la capaciteacute simple permettant de migrer une application sur un type
de support vers un autre et inversement Il est eacutegalement inteacuteressant de voir que lrsquointeacutegration de
controcircles avanceacutes se fera de maniegravere plus aiseacutee et surtout une meacutethode unique les consideacuterations
concernant lrsquointeacutegration de la cartographie en WPF se reacuteduisent puisqursquoil srsquoagit lagrave des mecircmes
deacuteveloppements
Attention toutefois les applications srsquoexeacutecutant sur une table Surface doivent agrave mon sens faire preuve
drsquoune reacuteflexion particuliegravere sur lrsquoutilisation qui va en ecirctre faite Il faut concevoir lrsquoapplication comme
eacutetant possiblement exploitable de nrsquoimporte quel cocircteacute de la table et surtout avec de lrsquoinformation
adapteacutee et lisible dans ce cas preacutesent Lrsquoutilisation simultaneacutee par plusieurs utilisateurs est eacutegalement un
eacuteleacutement dont il faut tenir compte et qui est agrave reacutefleacutechir
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Conclusions
Lrsquoensemble de ces solutions techniques drsquointeacutegration de plateforme cartographique au sein drsquoapplication
WPF sont agrave consideacuterer en fonction du contexte final drsquoexeacutecution
En effet on ne peut pas aiseacutement deacutesigner LA solution parfaite pour tous les cas car lagrave ougrave pour certains
le besoin en support et eacutevolution du composant est primordial lrsquointeacutegration fine et le besoin de
customisation seront neacutegligeacutes et inversement
Par contre la solution utilisant le plugin 3d (Concierge ou controcircle InfoStratVE) ne doivent plus ecirctre
utiliseacutees pour de nouveaux projets et devront tregraves certainement subir une migration dans les mois agrave venir
agrave la fin de vie du plugin (novembre 2011)
Il eacutegalement agrave noter que dans ce type drsquointeacutegration il est toutefois neacutecessaire de conserver en tecircte
lrsquoaspect leacutegal et donc se rapprocher de Microsoft pour obtenir davantage drsquoinformation concernant les
licences drsquoutilisation de la plateforme Bing Maps for Enterprise
Autres pistes agrave explorer
Si vous avez en tecircte drsquoautres solutions drsquointeacutegration de lrsquoAPI Bing Maps ou plus geacuteneacuteralement de
cartographie au sein drsquoapplication WPF agrave laquelle je nrsquoaurai penseacute nrsquoheacutesitez pas agrave me contacter ou agrave
laisser un commentaire
Je nrsquoai pas preacutesenteacute la solution drsquointeacutegration de Google Earth API puisque je voulais des solutions
drsquointeacutegration de la plateforme Bing Maps for Enterprise principalement mais il est eacutevident que cela peut
ecirctre une solution possible drsquointeacutegration
La solution drsquointeacutegration ESRI nrsquoa pas non plus eacuteteacute preacutesenteacutee puisque leurs controcircles ne sont pas
librement accessibles en version drsquoeacutevaluation
Aussi si vous aussi vous rencontrez ce genre de besoin nrsquoheacutesitez pas agrave me contacter pour eacutechanger sur
le sujet
Recommended