mercredi 17 juin 2009

Le Snapin PowerShell de PoshBoard

Architecture du snapin et des objets

Poshboard est fournit avec un Snapin PowerShell contenant différents cmdlets. Ces cmdlets permettent de créer des objets compatibles avec le rendu de contrôles Silverlight dans PoshBoard. Les propriétés/méthodes utilisées pour ces cmdlets sont équivalentes aux propriétés que l’on peut trouver dans les contrôles Silverlight.

La logique des objets Silverlight est respecté le plus possible (ou simplifier pour les besoins de PoshBoard): vous trouverez dans les objets Silverlight (dans un projet dans votre Visual Studio par exemple) des propriétés portant le même nom que les propriétés des cmdlets.

Ceci permet de faciliter l’adaptation à l’outil pour un codeur PowerShell, tout en gardant une cohérence avec le modèle cible : vous pouvez vous aider d’exemples de code Silverlight pour créer vos contrôles.

clip_image002

Note: Toute les propriétés des contrôles Silverlight ne sont pas reproduites, ceci pour plusieurs raisons :

  • Certaines propriétés ne sont pas utiles dans le contexte de PoshBoard et complexifieraient le modèle et l’adaptation.
  • La volonté d’éviter des processus de reflection sur les objets Silverlight dans un premier temps, pour garder de bonnes performances.
  • Ou parfois simplement par manque de temps ;-)

L’idée maitresse est de conserver un modèle simple, facile à comprendre. Dans le futur, si de nouvelles propriétés apparaissent comme utile, elles seront ajouter à la solution dans de futures mise-à-jour.

Les développeurs .NET ayant déjà une petite expérience avec le développement Silverlight pourront facilement créer les correspondances en PowerShell.

Relation entre le Snapin, PoshBoard et Silverlight

Poshboard utilise WCF (httpPollingDuplex et BasicHttpBinding) pour établir la communication entre le client Silverlight et le serveur. Les objets PowerShell sont créés par les scripts initié par l’administrateur, et ces objets sont ensuite convertis en contrôles Silverlight dynamiquement dans l’interface.

Vous pouvez par ailleurs utiliser tout type de code PowerShell lors de la création de vos interfaces : ceci permet de profiter du dynamisme de PowerShell pour définir les paramètres des contrôles Silverlight et du contenu.

clip_image002[5]

Relation entre WCF, PowerShell et PoshBoard

Installation du snapin

L’installation est simple. Vous n’avez pas besoin d’installer PoshBoard pour utiliser les cmdlets : vous pouvez utiliser la console pour créer vos interfaces sous forme d’objets PowerShell.

Voici comment l’installer :

Copier les 2 dll’s du fichier zip dans un repertoire de votre serveur ou station de travail (exemple : c:\ressources)

Lancer la ligne de commande suivante (avec les droits admins pour Vista / 2K8 / Seven) :

x86 :

c:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil.exe c:\ressources\poshboard.dll

x64:

c:\Windows\Microsoft.NET\Framework64\v2.0.50727\installutil.exe c:\ressources\poshboard.dll

(x64 : lancer aussi la première ligne pour rendre le snapin disponible côté PoshBoard)

Ouvrez maintenant une console PowerShell et tapez :

Add-PSSnapin poshboard

List all cmdlets

get-command *PB*

 

Les cmdlets

Voici la liste des cmdlets :

Cmdlets

Description

 

New-PBAgDataGrid

Créer une DataGrid Silverlight (basé sur le contrôle AgDataGrid)

clip_image002[10]

New-PBButton

Créer un bouton Silverlight

clip_image004

New-PBChart

Créer un element graph (basé sur Visifire)

clip_image006

New-PBComboBox

Créer une ComboBox Silverlight

clip_image008

New-PBContainer

Créer une Grid Silverlight (le containeur de type “grille” pour les autres contrôles)

clip_image010

New-PBDataSerie

Créer un objet DataSerie (utilisé pour les objets charts Visifire)

clip_image006[2]

New-PBElement

Créer un objet vide (sans type ni propriétés, évènements spécifiques)

clip_image011

New-PBEvent

Créer un évènement (pouvant être intégrer aux objets dérivés de PBElement)

clip_image012

New-PBFlipBook

Créer un FlipBook (basé sur le contrôle SLMItsu Flip Page)

 

New-PBGridData

Créer un objet de données pour une  PBDataGrid

clip_image013

New-PBTextBlock

Créer un bloc de texte Silverlight

clip_image015

New-PBTextBox

Créer une TextBox Silverlight

clip_image017

Add-PBDataSerie

Ajouter un objet PBDataSerie à un objet PBChart

clip_image006[3]

Add-PBElement

Ajouter un élément (dérivé de PBElement) à un containeur type PBContainer

clip_image010[1]

Add-PBEvent

Ajouter un objet Evenement à un contrôle

clip_image012[1]

Add-PBGridData

Add un objet données (PBGridData) à un objet PBDataGrid

clip_image002[11]

Nous verrons dans le prochain post ces objets dans le détail, et comment créer vos premiers widgets.

Aucun commentaire: