février
2005
Et voilà, c’est la fin.
Je tiens absolument à remercier profondément tous ceux qui ont participé de près ou de loin à cet évènement, et au fait que je puisse y être présent et y assister dans d’aussi bonnes conditions.
Comme c’est la fin, le temps était lui aussi tout triste…
Encore une journée pleine d’informations.
Je savais que le cerveau était une machine extraordinaire, mais il va en falloir du temps pour assimiler tout ce qu’on vient de voir, et d’entendre.
Qu’ais-je vu, entendu, et surtout retenu aujourd’hui ?
- Overview of Visual Studio 2005 Tools for Office par Janet Robinson
La présentatrice nous a fait une série de petites démonstrations relatives à VSTO2005.
En voici quelques extraits :
- Il existe un nouvel objet RANGE => NamedRange sur lequel on peut intercepter divers évènements.
- Le code est compilé en DLL, séparé de l’application, ce qui permet son positionnement sur un serveur, et d’implémenter la sécurité à volonté. Cela facilité aussi les évolution relatives au code.
- L’accès au donnée est très simple.
- La programmation du TaskPane se fait en une seule ligne, afin de permettre l’interaction avec l’application. L’intérêt de la programmation du taskpane est qu’il n’est pas dans l’applicaiton. Donc, il ne sera pas imprimé => Globals.ThisDocument.ActionPanes.Controls.add (ctrl)
- L’intégration du document XL ou WD se fait directment dans VS.NET
Dans le projet, on repère une série de classes (Sheet1.vb, ThisWorkbook.vb, ThisDocument.vb)
Un exemple complet assez incroyable nous a été montré …
Depuis la taskPane
=> définition de critères
=> Affichage d’informations récupérées depuis Outlook
=> Affichage des informations sous la forme d’un catalogue dynamisue (sélection d’informations par dropDownList)
=> Parcours du document avec affichage des infos complémentaires dans le taskPane
=> Affichage de WindowsForms
=> Interaction avec un site de commerce électronique.
Et tout cela en quelques lignes de code ! Epatant…
- Visual Studio Tools for Office 2005 : Building Office solutions with Managed Code par Reza Chitzak
Cette partie était un vrai moment de bonheur. Envie de la revoir encore une fois ! non, de la revoir, en boucle !
Elle n’a été qu’une succession de démos.
Elle a démontré que, grâce aux nouveaux contrôle implémentés dans VSTO2005, la charge de travail en développement sur des projets Word ou Excel était très fortement diminuée.
Nouveautés
· Modèle de programmation (schema-based / Host Programming / Data Programming)
· Gestion de l’Action Pane (ou Task Pane)
· Gestion de SmartTag
· Intégration de Controles Windows Forms dans le document
· Amélioration du temps de conception
Il s’est ensuivi une série de demos … alors, allons y
Demo 1 : DataBinding …
New Project
Office => Word Template
Nouveau Document
On retrouve Word inclus dans VS, et on peut travailler dedans comme si on était dans word, puisque … on est dans Word !
Dans la boîte de contrôles : Word Controls => Bookmark (maintenant, un bookmark est un objet) le fait de glisser-déposer un objet BookMark sur un texte sélectionné, on crée un objet BookMark. Cela se voit dans la fenêtre des propriétés, et on peut même accéder à l’objet dans la liste des objet du module de classe associé au projet, et donc à l’ensemble de ses évènements.
Comment le lier à des données ?
Faire apparaître le DataSource Panel
Il suffit alors de Glisser-déposer les champs récupérés dans le document.
NB : Il est possible de choisir le type de contrôle qui sera affiché dans le document.
NB : Cela ajoute 3 components (DataSet, DataTableAdapter et BindingSource)
Dans le code, il suffit de lier les bookmarks aux données :
BookMark1.databindings.add(« Text », employeDemoDataset.Employee, « employeeName »)
Terminé !
Ecoeurant !
Demo 2 : Master-Detail (équivalent de formulaire/Sous-formulaire)
New Project
Office => Excel Workbook
Nouveau Document
Création de la connection à Northwind
Choix des tables Orders et OrdersDetails
Le projet récupère un XSD qui contient la description des sources et la relation entre Orders et OrderDetails
Le DataSoure Pane contient les informations sélectionnées
Dans Orders, on retrouve OrderDetails
Il suffit de glisser le OrderID et le OrderDetails contenu dans Orders pour créer un « master/details » dans Excel.
Cela a créé une liste et un NamedRange
A l’ouverture, on accède au premier enregistrement, et à tous les détails de la commande.
Pour rajouter de quoi défiler => Ajout de 2 boutons
OrdersBindingSource.MovePrevious / MoveNext
Ajout de contrôles personnalisés
Insertion d’un nouveau contrôle le BindingNavigator …
Sur le load du contrôle
BindingNavigatore.BindingSource=Globals.Sheet1.OrdersBindingSource
Associer le nouveau contrôle au taskPane
Au startup du Workbook
Dim my
as new UserControl1
ActionPane.Controls.Add (my)
Demo 3 : Support du SmartTag
New Project
Office => Excel Workbook
classeur Existant (pour un design déjà avandé du classeur)
Connexion aux Orders
Drag-Drop des Orders
Objectif : En fonction de l’employeeID, afficher des informations supplémentaires sur l’employee
Add Web Reference
Connexion à un webService qui permet d’accéder aux informations relatives à un employee
Ajout d’un nouveau Control personnalisé. (picture + Labels + TextBox)
Création d’une procédure qui :
– Crée une nouvelle instance du UserControl
– Enlève l’ensemble des controls, ajoute l’instance créée
– Affectation des infos du WebSWervice aux différents controls du control personnalisé
– Création du smarttag (6 LIGNES)
Demo 4 : Avantage des fonctionnalités XML…
New Project
Office => Word Template
Document Existant (Document associé à un schema)
Après un examen des fonctionalités d’echange entre le TaskPanel et le document, Accès au code
Très fort ! j’en ai oublié de noter la suite tellement c’était captivant ! Ca mets les nerfs hein
Il y a eu également l’intervention d’un personnage ‘non-Microsoft’ qui a été interpelé par Reza Chitzak, afin qu’il fasse une petite démonstration d’un WebService qu’il a développé, afin de permettre la saisie de commandes auprès d’Amazon, depuis un classeur Excel.
C’était impressionant !
Au fur et à mesure des déplacements dans la feuille de calcul, le taskPane affichait l’emble des informations sur le produit en cours, dans un controle à onglets. il y avait de tout : Possibilité d’avoir l’ensemble des informations tarifaire, de contenu/description, et même photo, avec zoom possible sur la photo !
Mais ce n’est pas tout !
Certaine fonctionnalité avait été ajoutées comme, par exemple, la possiilité de visualiser pour le produit concerné par la cellule active, juste sous cette cellule, dans une petite boite qui se repositionnait toute seule, l’ensemble des offres tarifaire d’Amazon.
On avait même la possibilité de créer des commentaires, dans une petite fenêtre en pop-up, fenêtre dont on pouvait modifier la transparence grace à un petit slider.
Bref, voilà une session captivante qui m’a donné vraiment envie de passer à VSTO2005
- Advanced Visual Studio Tools for Office Programming & Deployement par Andrew Clinick
Cette session abordait essentiellement les fonctionalités serveur de VSTO2005.
Comment, par exemple, partant d’un fichier ASPX, on pouvait générer l’envoi d’un document Excel ayant récupéré des données via un service Web dans l’interface de l’utilisateur.
>> Objectifs Server
– Rendre la création de contenu Office sur le serveur aussi simple que de créer du HTML
– Intégration dans le modèle de programmation VSTO2005
– Scale, Scale, scale
– Intégration au modèle de programmation ASP.NET
Les possibilités Server dans VSTO2005
Remplir les ilots de données sur le server
Programmer directement les données sur le serveur
Exécuter du code extérieur au document
Exposer des données de documents Office dans un aspx
Comment ça marche ?
· Récupération de données :
Le client émet une requête
Le code exécute la requête
Il récupère des données
Les envoies dans un document Office
Le document Office est retourné au client
· Envoi de données
Par un submit, on envoie le document au code, qui
‘craque’ le document de manière à récupérer les données
Renvoies les données au serveur.
Qu’est-ce qui n’est pas supporté ?
– Programmer directe des Affichages
· Word & Excel ne tournent pas sur le serveur, Il n’y a donc pas de moyen d’obtenir le modèle d’objet pour chauqe application
· Il est cependant possible de faire sinmplement toutes les manipulations de données voulues
– Intégration avec les autres applications Office
>> Securité
La sécurité VSTO est gérée par le sécurité policiy de .NET
…
Intéressant, mais à partir du moment où c’est devenu du magistral, j’ai eu du mal à me concentrer …
- Extended Windows SharePoint Services in ways you did par Eammon McGuinness
Il s’agissait d’une présentation très spectaculaire d’un employé de la société BrightWork (développement de solutions pour SharePoint).
Il m’a été très difficile de ne pas entendre parler de SharePoint pendant ces trois jours. N’oubliez pas que je suis parti avec Renaud Comte quand même ! et comme il n’a que 3 mots dans la bouche : « SharePoint C’est Super ! », forcément, côté conversation, je n’avais pas trop le choix.
Bon, un minimum d’honneteté est de rigueur, donc, je dirai qu’en plus, même si les sessions auxquelle j’ai assisté n’étaient pas basées sur SharePoint, comment ne pas entendre BillG ates, lors de son KeyNote, dire tout le bien qu’il pensait de ce produit, et que l’avenir de ce dernier était assuré, puisqu’il devenait un point névralgique de l’architecture logicielle de Microsoft… !
Mais, n’y connaissant rien personnellement, je me suis dit qu’il pourrait être intéressant d’y faire un tour.
Et ce fût intéressant !
Les fonctionnalité qu’ils ont réussi à développer sont tout simplement effarantes ! Renaud faisait des bonds sur son fauteuil.
Ils ont réussi à créer des composants incroyables !
Des diagrammes de Gant, par exemple !
Bon, bien sûr, moi, j’avais un oeil très extérieur ! Mais j’ai trouvé cela très beau et très fonctionnel, et il me semble quand même que c’est ce qu’on attend d’un outils de travail (gestion de projet dans leur cas).
Voilà, c’est fini…
J’en ai terminé avec les posts ‘sérieux’.
Donc, maintenant, je vais esayer de vous mettre un petit florilège des moments amusants