D’abord proposé comme possible solution de développement et d’intégration lors d’une discussion téléphonique, l’exploitation de l’interopérabilité entre Silverlight et WPF peut être une solution simple pour ajouter le contrôle Bing Maps au sein d’une application lourde.

Microsoft Bing Maps for Enterprise integration WPF interoperability Silverlight via WebBrowser and proxies

J’ai choisi de décomposer cet article en plusieurs partie afin d’assurer une meilleure lisibilité pour chaque partie.

 

Rappels des solutions intégration et présentation

Lors du précédent article concernant l’intégration de la cartographie au sein d’application de type WPF ou WinForm, nous avons exposé plusieurs solutions dans le détails avec les avantages et inconvénients pour chacun d’entre elles, pour rappel, on peut proposer les solutions suivantes :

  • Intégration via WebBrowser utilisant le contrôle AJAX
  • Intégration via WebBrowser utilisant le contrôle Silverlight
  • Intégration via plugin 3d
  • Développement d’un contrôle spécifique full-WPF

Ici le cas présenté correspond au scénario d’intégration utilisant le composant WebBrowser pour héberger le contrôle Silverlight.

Cette solution permet notamment de bénéficier d’une interface riche et permissive en profitant des possibilités de Silverlight en termes de richesses et d’interaction.

 

Principe technique

Afin d’expliquer la technique utilisée, voici un schéma représentant les différentes couches ainsi que les échanges qui sont opérés.

Interoperabilite Silverlight WPF Winform Bing Maps for Enterprise Silverlight Control

On peut donc remarquer que l’interopérabilité intervient à plusieurs niveaux :

  • Couche d’interopérabilité entre Silverlight et JavaScript
  • Couche d’interopérabilité entre JavaScript et le code WPF/WinForm (C#)

Toute la particularité réside dans cette interopérabilité multi-niveaux et il faut également ajouter que le contrôle Silverlight pourrait tout à fait utiliser un Web Service qui serait hébergé sur un serveur dédié ou bien même embarqué dans l’application (scénario peut recommandé).

 

Mise en œuvre technique

Après avoir discuté de la théorie, venons-en à la pratique et réalisons un exemple simple d’intégration et d’interopérabilité multi-niveau du contrôle Bing Maps Silverlight au sein d’une application WPF, pour cela étudions les différentes couches d’interopérabilité individuellement.

  • Architecture de la solution

Afin de réaliser et comprendre cet exemple d’intégration, nous utilisons une structure de solution comprenant plusieurs projets dont voici le schéma :

Intéropérabilité Silverlight WPF Winform - Bing Maps for Enterprise - Architecture de la solution Visual Studio 2010

On distingue ainsi plusieurs projets :

  • SLClientMapSimple : projet Silverlight qui correspond à l’application qui sera chargée dans la page Web
  • WebFrontSample : projet d’application Web permettant de développer et exécuter l’application Silverlight
  • WPFClientSample : projet d’application lourde qui héberge le contrôle WebBrowser et qui contiendra en fin de compte, l’application web hébergeant le projet Silverlight

Cette arborescence est une proposition, il est à noter que l’on peut tout à fait retrouver une architecture différente mais dans l’immédiat, elle permets d’identifier les différentes parties applicatives.

 

On abordera les étapes de développement dans les articles suivants.