IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Conférence Office

Date de publication : 20/04/2005 , Date de mise a jour : 20/04/2005

Par Maxence HUBICHE (access-maxence)
 

Les conférences office. Voici un petit compte-rendu pris sur le vif. il ne s'agt que de mes notes sur le sujet.
Hélas, j'ai manqué le début :(


I. PRESENTATION
I-A. Introduction
I-B. VBA vs Visual Studio Tools for Office 2005
I-B-1. DEMO : VSTO 2003
I-B-2. DEMO : VSTO 2005
I-C. INFOPATH
I-C-1. DEMO : Création d'un formulaire de notes de frais
I-D. Travail collaboratif
I-D-1. DEMO : Structuration d'une note.
I-E. Information Rights Management dans office
I-F. SharePoint Services
I-F-1. DEMO : Site collaboratif
II. DEVELOPPEMENT
II-A. Le XML
II-A-1. DEMO : Intégration XML
II-B. Office System
II-B-1. DEMO Word Automation
II-B-2. DEMO Excel Automation
II-B-3. Les SmartTags
II-B-4. Le SmartDoc
II-B-5. WebParts et WebServices
III. ILog : Présentation de leur solution
IV. Mon avis perso ... et la version audio


I. PRESENTATION


I-A. Introduction

Mercredi après-midi. 13h30, début de la prestation. Et qui n'était pas là ? Moi ...

Bon, c'est vrai que j'ai manqué le début, mais, il n'était absolument pas pensable que je rate cette grand-messe Office Systems

Alors ... je suis entré quand même. J'avoue que j'avais plein d'espoir à mon arrivée, car j'avais déjà eu le grand privilège de participer, en compagnie de Renaud Comte, à l'Office Developper Conference à Seattle, sur le campus de Microsoft. Et, ayant vu ce que j'ai vu, je me demandais comment nos experts allaient pouvoir faire tenir en une demie journée, les points que nous avions à peine pu voir en trois jours...

Alors, remettons un peu les choses en place. De quoi parle-t-on lorsqu'on parle d'Office System ?




I-B. VBA vs Visual Studio Tools for Office 2005

VSTO2005 deviens et sera la plateforme de développement de Microsoft, que ce soit pour Office, SQL Server ou tout autre outils de développement de MS

Le potentiel est autrement supérieur à celui de VBA. Ainsi, on accède à des outils, objets, supplémentaires. La programmation du task pane est avancée et simple. On peut interagir avec les données en cache (îlots de données).

La création d'un ilôt de données est très simplifiée, puisqu'il suffit de mettre un attribut [Cached] sur le dataset. Cependant, la gestion des conflits en mode multi-utilisateurs est à gérer par programmation.

La sécurisation du code également est améliorée. Elle utilise la sécurité .NET, liée avec le document en fonction des droits et de la signature de l'assembly

Le déploiement est simplifié. on peut utiliser les outils de déploiement de .NET puisque VSTO est dans le Visual Studio.NET. Il devient très simple de fabriquer des MSI, ou des outils de développement de type ClickOnce, qui permettra de gérer les mises à jours de l'application.


I-B-1. DEMO : VSTO 2003

Utilisation de Winforms intégrés dans un projet Excel, extension des menus, automatisation des traitements...

Tout cela était déjà possible en VBA. Cependant, la réutilisation de composants métiers (WebServices, dll, etc...) est tout à fait possible maintenant, et, de plus, la programmation en VB.NET ou en C# est présente.


I-B-2. DEMO : VSTO 2005

Récupération, dans Excel, de données provenant de données issues d'une base de données SQL Server. Même si cela est simple actuellement avec Excel. Cependant, l'objet est de travailler en Binding, c'est à dire qu'une modification du contenu d'une cellule ira modifier les données de la base de données. Ceci est très simple en .NET, puisqu'on utilise un dataset. D'ailleurs, un simple bouton 'Sauver' permettra de lancer la mise à jour du dataset.

Si l'attribut [Cached] est mis en place au sein du dataset, l'enregistrement du document Excel permet d'enregistrer les données en cache dans le document. Ainsi, si le serveur 'tombait', on pourrait continuer de travailler, en mode déconnecté.

Cet attribut [Cached] est très intéressant car une appli DotNet tournant sur un poste sans Office pourrait aller lire le dataset du fichier xls (sans être capable de lire le fichier xls lui-même) et même les mettre à jour si nécessaire.


I-C. INFOPATH

InfoPath est un utilitaire permettant la création et l'utilisation de formulaires, de la manière la plus simple possible, sans avoir à créer une ligne de code, par exemple.

Un formulaire type est la déclaration d'impôts. Le formulaire est conçu d'après une base de données ou suivant un schéma XSD. les données stockées peuvent être ensuite sérialisées en XML. on parle donc d'un client XML.

Cet architecture repose exclusivement sur des standards XML.


I-C-1. DEMO : Création d'un formulaire de notes de frais

La création se fait très simplement en utilisant les composants par défaut, par de simples cliquer-déposer. L'utilisation du clic-droit pour accéder aux propriétés des objets posés permettent, par exemple, de modifier les contrôles, mais également leur fonctionnement. Par exemple, la création d'une liste récupérant des informations en provenance d'une base de données.

InfoPath permet également de générer automatiquement des formulaires en fonction de la structure d'un webService. en effet, le WSDL est auto descriptif et conforme aux normes XML. Donc l'application est capable de générer le formulaire en choisissant les contrôles les plus adaptés.

Hélas, pour le moment, il n'y a pas de 'viewer' infoPath. il est donc nécessaire d'avoir InfoPath sur son poste pour pouvoir utiliser les formulaires InfoPath.

I-D. Travail collaboratif

On constate une mutation dans l'organisation des SI. Ainsi, actuellement, même si les données sont sur le serveur (ce qui ne change pas), maintenant, les utilisateurs souhaitent accéder directement aux informations, mais aussi être capable de les récupérer sous des formes diverses et variées.

XML dans office2003 permet donc surtout :

  • de séparer la couche de présentation de la couche de données
  • d'avoir directement un document (Excel/Word/...) qui soit un document XML
Tous les documents Office peuvent être sauvegardés en XML. tous les modèles (WordProcessingML, SpradsheetML, FormTemplateXML, DataDiagramML, etc.) sont tous des modèles ouverts et disponibles.

On va donc pouvoir rapidement structurer les documents, et cette structure va donc permettre une interaction plus forte avec d'autres informations. L'examen de la balise en cours permettra de proposer rapidement dans le TaskPane (par exemple) les actions correspond à ce tag. Des règles de validations pourront être mises en place en fonction du type de tag mis en place et décrits pas le schéma XSD.

On obtient donc des scénarios d'usage extrêment variés, comme, par exemple

  • Extraction automatique de données métiers depuis un document
  • Accès simplifié aux données de l'entreprise dans le contexte du document (édition . recherche / lecture)
  • Amélioration de l'efficacité des processis par l'intégration de contrôles et de validation dans le document
  • Exploitation du même document pour une diffucion multi-canal (multiterminaux, multiformats)
  • Génération automatique de rapports et assemblage de documents à partir des sources de données et de contenus de l'entreprise.

I-D-1. DEMO : Structuration d'une note.

La note est un document Word standard. On va chercher à l'associer à un schéma XSD définissant le principe des notes.

Il ne reste plus qu'à sélectionner les parties du document pour les 'tagguer'. En fait, ainsi, on précise quelles données doivent être dans quels tags conformes auschéma XSD.

On peut, dès lors sélectionner un enregistrement en XML pur, ce qui fera perdre toutes les informations relatives à l présentation. Le document XML est tout à faitlisible dans Word, mais la présentation a forcément disparu.

Cependant, il est possible d'appliquer une feuille de style XSL à ce document, ce qui permet d'afficher le XML avec une présentation correcte, transparente pour 'lutilisateur qui voit donc un document répondant à la norme WordML

Il en est absolument de même avec Excel. On peut utiliser un schéma XSD, récupérer les données du document XML word et même travailler dessus, en faisant, par exemple, un Tableau Croisé Dynamique.


I-E. Information Rights Management dans office

Permet de gérer les droits d'accès, la date d'expiration, les droits de 'copier-coller', qui a le droit de modifier, la visualisation ou non via un viewer, etc. On peut donc donner des droits sur le contenu des documents. Cette technologie est très utilisée par Microsoft pour les documents 'sensibles' à diffusion en interne uniquement.


I-F. SharePoint Services

SharePoint Services est une brique d'Office System. Il existe une couche supérieure : SharePoint Portal

Ce produit sert essentiellement au travail collaboratif. Ces fonctionalités le splus importantes :

  • WebParts
  • Présence électronique (MSN)
  • Agendas partagés
  • Intégration Office
Cette couche est une couche gratuite sous licence Office 2003. Cela repose sur le .NET Framework

Un avantage de ce produit est de centraliser les documents et de permettre ainsi une gestion documentaire. une fois qu'un document est dans une 'Document library' on pourra stocker différentes méta données prédéfinies ou qui seront définies pour ce genre de documents. On pourra également conserver une version de chaque modification effectuée sur les documents. La recherche full text est intéressante également, sans compter la collaboration intégrée comme l'affectation de tâches, entre autres.

Une 'Document Library' est une liste. Tout ce qui est stocké dans SharePoint Services est stocké dans une liste. On peut interacgir avec des applications office pour récupérer ces listes.

Dès qu'on souhaite faire des traitements un peu plus avancés, alors il faudra entrer dans le développement d'application écrites en .NET. Beaucoup de produits tiers ont été développés par des partenaires Microsoft autour de SharePoint Services.


I-F-1. DEMO : Site collaboratif

La création d'un nouveau document au sein d'une liste lance automatiquement l'application associée à la Document Library. L'enregistrement se fait donc directement dans la liste SharePoint. Sur le document, on peut donc accéder aux options de CheckIn/CheckOut (par exemple), éditer les informations, les modifier, accéder l'historique des versions ... entre autres.

La gestion des contacts partagés se fait en quelques clics.

La gestion des Listes, en elle même est très simplifiée. De nombreux modèles sont disponibles (liste d'images, listes d'évènements, listes de documents, ...) et chaque liste a ses propres métadonnées.

Ces données sont rendues visibles à travers les WebParts.


II. DEVELOPPEMENT


II-A. Le XML

Le XML (Extensible Markup Language) définit la sémantique des données, est très rigoureux, définit une hiérarchie et est un standard

Il permet de décrire l'information. Il permet la séparation entre l'interface, la présentation et les données elle-même.

XML définit les données

XSD est la définition de la structure et du type de données

XSLT est la définition de la transformation des données afin de les présenter dans sous un aspect choisi.

Les sources de données sont multiples. La plupart sont maintenant capable d'exposer leurs données au format XML

Le gros avantage du XML pour l'utilisateur est que ce dernier n'a absolument pas besoin d'avoir de connaissances particulières. il pourra éditer des fichiers XML comme un doc ou un xls. Par contre, le développeur devra écrire un peu plus de code, comme le code de transformation des données par exemple...


II-A-1. DEMO : Intégration XML

Partant d'un document minimum au format WordML, Word sait effectivement le lire sans problème

L'ajout du tag msoApplication, en définissant le ProgID à Word.Application permet d'ouvrir directement le document via Word

Il existe un 'Viewer' WordML qui est une simple page de transformation et une petite dll. A partir de là, les données seront visibles même sur les postes non équipés d'Office 2003. La vue se fait sous internet Explorer.

Puisque le document repose uniquement sur un format xml, il est tout à fait possible de faire un traitement qui va lire les informations xml du fichier pour aller les éditer, sans pour autant avoir word sur le poste, par exemple en c#

WordML to xmlfo va permettre de transformer le WordML en xmlfo (xml juste avant la génération de pdf) qu'on pourra passer par un parseur de transformation pdf (ex : nfop qui est hélas assez limité, mais il y en a d'autres...)

Sur le SDK de WordML on peut trouver un outils transformant du WordML en une feuille xslt (WML2XSLT). L'application de la transformation XSLT ainsi générée au fichier WordML pur permet de récupérer les données.


II-B. Office System

Faire une petite lecture de son ici.


II-B-1. DEMO Word Automation




II-B-2. DEMO Excel Automation

Dans les macros complémentaires on peut aller chercher une macro complémentaire automation. Ceci permet, par exemple de créer des fonctions en DotNet qui seront réutilisable à l'intérieur d'Excel...

Il faut que l'assembly soit référencée en tant que serveur COM (Com interop)

Cela est très pratique car la recompilation de la dll DotNet permet l'altération des fonctions existentes et même d'en ajouter rapidement, tout en ayant accès à tout ce qui est imaginable en DotNet (Services Web, etc...)

L'interaction avec la feuille de calcul Excel est également tout à fait envisageable, comme la récupération d'évènements en cours dans l'instance d'Excel ou dans le classeur, la feuille, la plage, ...

Dans VSTO2005 on a une intégration complète de l'interface de l'application (Excel) au sein du Visual Studio. L'ensemble des composants .NET est accessible. on peut posser n'importe quel contrôle des WindowsForms sur la feuille. De plus, certains objets spécifiques sont disponibles avec leurs évènements, comme par exemple, le NamedRange (Plage nommée) qui permettra de gérer l'interaction avec la plage de cellule, cequi, rappelons le est très difficile à gérer en VBA. Ainsi, le code se trouve simplifié.

On se retrouve en fait dans le cas d'un développement de WindowsForms mais au sein de l'application Excel.

La classe ServerDocument est un composant permettant d'ouvrir un document Word ou Excel sans avoir l'application sur le poste. Ainsi, il devient possible de parcourir les documents afin d'aller récupérer et manipuler les données qu'ils contiennent. On rend ainsi possible la création d'application WindowsForm permettant la manipulation directe de données d'un document. Cela est extrêmement rapide, et seules les données sont ainsi modifiées sanspasser par l'automation. L'utilisateur pourra à nouveau ouvrir son document dans son application favorite. Mais les données affichées seront celles qui auraont préalablement été altérées.




II-B-3. Les SmartTags

Il est conseillé de partir d'une solution existente pour comprendre le fonctionnement de cela.

Il y a cependant un LAB qui a été conçu pour comprendre la compréhension de la fabrication d'un smartTag


II-B-4. Le SmartDoc

Le taskPane devient un outils d'interaction avec l'utilisateur extrêment fonctionnel.

On va attacher un schéma XSD au document. A partir de là, on pourra développer une dll (addin SmartDoc) qui va implémenter des interfaces (ISmartDocument). on va créer un manifest (fichier de configuration XML) et associer le manifest au document word. L'ensemble sera ensuite à diffuser.

Ce modèle standard d'office est assez puissant. On va ainsi pouvoir réagir aux évènement (XMLSelectionChange, XMLValidationError, XMLBeforeInsert, ...). on utilisera le modèle objet pour insérer les textes dans le document Word.

Le Manifest... il contient diverses informations comme le Path, la version, la fréquence de mise à jour, le type de solution, etc.

Il est conseillé d'utiliser un wrapper pour monter ce genre de soution. Le wrapper proposé est le wrapper Vertigo (gratuit). on décrira le smartDoc dans un fichier Xml est on écrit le CodeBehind.

Il est important de noter que le SmartDocument est lié à un Schéma et non à un document.

Le développement d'un smartDoc comme le développement d'un SmartTag n'est pas forcément simple. Mais il offre des fonctionalité de travail à l'utilisateur final qu'il ne faut pas bypasser


II-B-5. WebParts et WebServices

La création d'une WebPart est réalisable dans Visual Studio après le téléchargement d'un addin sur le site de Microsoft. il devient alors possible de créer un nouveau type de projet.

La création d'un WebPart se fait en mode texte (programmation)

Le déploiement d'une solution WebPart se fait via la création d'un CAB contenant les fichiers dwp (Definition Web Part), dll et manifest.xml

L'installation de la WebPart sur le site Web se fait via une ligne de commande.

Le développement d'une webPart se fait donc simplement en utilisant les controles web standards et saisir le code pour effectuer le rendu. une alternative serait de créer un UserControl graphiquement et de le réutiliser dans le code (via drag and Drop).


III. ILog : Présentation de leur solution

Cette solution regroupe pratiquement tous les concepts qui ont été vus dans la journée.

Mais c'était ennuyaaaaaant ! Une personne m'a d'ailleurs dit : "Ce que j'aurai retenu d'Ilog, c'est une page plein de logos !" ... C'est dire !


IV. Mon avis perso ... et la version audio

Clairement, j'ai trouvé cette session moyenne, beaucoup trop orienté marketing. Ca m'a fait penser à la plupart des articles ZDNet, c'est à dire que je ne trouve pas cela inintéressant, mais cela manque de profondeur. Je résumerait ainsi : Beaucoup de blabla, manque d'exemples concrets.

Ceci ne remet aucunement en question la compétence des intervenants ! Loin de là ! Mais franchement, parler de TOUT Office Systems en une demie journée, c'est un challenge irréalisable ! C'est infaisable !

Les développeurs que j'ai rencontré m'ont clairement fait comprendre qu'ils s'étaient ennuyés pendant toute la première partie, et que, HEUREUSEMENT, il y avait la partie développement qui les avait un peu réveillé.

En fait, en une demie journée, on aurait pu parler d'UN aspect d'office system... ha ! C'est dur de trouver un compromis efficace ! Quoi qu'il en soit, un message sera passé auprès de chacun, j'en suis sûr, c'est que microsoft réoriente sa suite bureautique vers des solutions d'entreprise (et non plus seulement vers des solutions personnelles), sécurisable, économiques en terme de temps de développement, robustes, conviviales pour l'utilisateur, etc. Il s'agit donc d'un vrai progrès. Il s'agit donc d'une vraie orientation. Et si certains ne l'ont pas pleinement saisi, je ne peux que les engager à plonger leurs regards au fond de l'Office System !

Vous ne le regretterez pas !

Si vous voulez vous repasser la session, vous trouverez une version audio ci-dessous. C'est moins passionnant que lorsqu'il y a la vidéo, mais j'ai tenté la vidéo, et c'était tellement mauvais, que j'ai gardé uniquement le son. Désolé.



Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.