Génération de documents Office côté serveur avec Open XML et VSTO Julien Chable http://blogs.developpeur.org/neodante   Co...
L’innovation par la compétence et l’expertise 7 MVP + 1 RD
Agenda <ul><li>Développement Office client avec VSTO </li></ul><ul><ul><li>Ruban Office </li></ul></ul><ul><ul><li>Volet d...
VSTO pourquoi faire ? <ul><li>Aider les développeurs à facilement intégrer leur logique métier dans Microsoft Office </li>...
VSTO qu’est ce que c’est ? <ul><li>V isual  S tudio  T ools for  O ffice </li></ul><ul><li>= Socle technologique pour impl...
L e s Add-Ins VSTO <ul><li>Structure de code permettant le développement des solutions Office : </li></ul><ul><ul><li>AddI...
Personnalisation du ruban Office <ul><li>Nouveauté de l’interface Office 2007 </li></ul><ul><ul><li>Remplace les menus et ...
Personnalisation du ruban Office <ul><li>Visual Studio 2008 fournit un Designer </li></ul><ul><ul><li>Ajouter des onglets ...
Personnalisation du ruban
Volet d’actions ou de taches <ul><li>ActionsPane </li></ul><ul><ul><li>Associé à un document  Word  ou  Excel </li></ul></...
Word Content Controls <ul><li>Disponible pour Word 2007 au  niveau document  </li></ul><ul><li>Définir des  zones de conte...
Volet d’actions et Word Content Controls
 
Le format Office Open XML Vue de l’utilsateur MonDoc.docx Vue du développeur : un fichier zip avec des parties XML Proprié...
Un SDK Open XML pourquoi faire ? <ul><li>Permet aux développeurs d’accéder aux documents  sans nécessiter Office Automatio...
Office Automation
Un SDK Open XML pourquoi faire ? <ul><li>Créer des solutions pour des documents Office </li></ul><ul><ul><li>…  sur le cli...
SDK Open XML v2
Un SDK Open XML pourquoi faire ? <ul><li>Remplacer Office Automation (enfin ?) </li></ul><ul><li>Des avantages : </li></ul...
Le SDK Office Open XML <ul><li>Le SDK Open XML permet un accès aux parties et au contenu des documents </li></ul><ul><li>R...
Formatage du contenu <ul><li>Forcer les standard de formatage des organisations : </li></ul>Open XML Processing
Inspection du contenu Exemple 1 :  supression des informations confidentielles, de suivi des modifications ou les métadonn...
Consommer des documents Les utilisateurs créent des rapports dans un tableur, qui seront ensuite chargé dans des applicati...
Assemblage de documents <ul><li>Exemple :  création de document de prévision depuis les données stockées dans un CRM. </li...
Utilisation du Custom XML <ul><li>Exemple :  marquer le contenu d’un document avec une sémantique personnalisée pour trait...
SDK Open XML v2 Démo commune
Le SDK Open XML v1 <ul><li>Typage des classes des parties </li></ul><ul><li>Le SDK v1 permet de manipuler  les parties uni...
Le SDK Open XML v2 <ul><li>Utilisation de  System.IO.Packaging </li></ul><ul><li>Le SDK v2 permet de manipuler  le contenu...
Génération d’un document Word <ul><li>using  (WordprocessingDocument package = WordprocessingDocument.Create(docName, Word...
SDK Open XML v2
Architecture SDK Open XML System Support .Net 3.5 System.IO.Packaging Open XML Schemas Open XML File Format Base Level  Re...
Le SDK Open XML n’est pas … <ul><li>…  un remplacement du modèle objet d’Office (VBA ou VSTO), </li></ul><ul><li>…  une ai...
 
OpenXml Diff – SDK v2 <ul><li>Permet de faire la différenciation de documents Open XML </li></ul>
Class Explorer – SDK v2 <ul><li>Véritable documentation : </li></ul><ul><ul><li>Classes </li></ul></ul><ul><ul><li>Spécifi...
Document Reflector – SDK v2 <ul><li>Outil pour débutants et experts </li></ul><ul><li>Génération du code C# utilisant le S...
 
VSTO PowerTools <ul><li>Ouvre et édite les documents Open XML dans Visual Studio </li></ul><ul><ul><li>http://www.microsof...
Open XML Viewer <ul><li>Convertisseur Open XML    HTML </li></ul><ul><li>Projet Open Source disponible sur Codeplex: </li...
B2XConverter <ul><li>Convertisseur binaires (Word, Excel, PPt)    Open XML </li></ul><ul><li>Guide de conversion </li></u...
PowerTools Open XML <ul><li>Un ensemble de +30 cmdlets pour créer ou modifier les documents Open XML </li></ul><ul><ul><li...
PowerTools for Open XML
Implementation Notes <ul><li>Détail de l’implémentation du format Open XML ECMA-376 dans Office 2007 </li></ul>
 
Synthèse <ul><li>VSTO permet de créer des solutions côté client en profitant des avantages de la suite Office </li></ul><u...
Références <ul><li>Centre de développement VSTO :  http://msdn.microsoft.com/fr-fr/vsto/default(en-us).aspx   </li></ul><u...
 
Génération de documents Office côté serveur avec OpenXML et VSTO Julien Chable http://blogs.developpeur.org/neodante   Con...
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
Prochain SlideShare
Chargement dans…5
×

Génération de documents Office avec Open XML et VSTO

3 765 vues

Publié le

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
3 765
Sur SlideShare
0
Issues des intégrations
0
Intégrations
47
Actions
Partages
0
Téléchargements
26
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 06/07/09 22:30 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • Génération de documents Office avec Open XML et VSTO

    1. 1. Génération de documents Office côté serveur avec Open XML et VSTO Julien Chable http://blogs.developpeur.org/neodante Consultant / Développeur Wygwam <ul><li>Code Session : POS206 </li></ul>Sébastien Bovo http://blogs.msdn.com/sbovo/ Apps Development Consultant Microsoft
    2. 2. L’innovation par la compétence et l’expertise 7 MVP + 1 RD
    3. 3. Agenda <ul><li>Développement Office client avec VSTO </li></ul><ul><ul><li>Ruban Office </li></ul></ul><ul><ul><li>Volet d’actions et de taches Office </li></ul></ul><ul><ul><li>Word Content Controls </li></ul></ul><ul><li>Le format Open XML, de la théorie … </li></ul><ul><li>… à la pratique avec le SDK Open XML v2 </li></ul><ul><li>Les outils </li></ul><ul><li>Synthèse </li></ul><ul><li>Q&A </li></ul>
    4. 4. VSTO pourquoi faire ? <ul><li>Aider les développeurs à facilement intégrer leur logique métier dans Microsoft Office </li></ul><ul><li> Développement d’ O ffice B usiness A pplications </li></ul><ul><li>Bénéficier d’une ergonomie et d’une interface connues des utilisateurs </li></ul><ul><li>Permettre la création d’applications riches </li></ul><ul><ul><li>Sécurisées </li></ul></ul><ul><ul><li>Facilement déployables et maintenables </li></ul></ul><ul><ul><li>Rapides à développer </li></ul></ul>
    5. 5. VSTO qu’est ce que c’est ? <ul><li>V isual S tudio T ools for O ffice </li></ul><ul><li>= Socle technologique pour implémenter le concept OBA à travers </li></ul><ul><li>Gère la « plomberie » et l’intégration dans les applications </li></ul><ul><li>Word Excel </li></ul><ul><li>PowerPoint Outlook </li></ul><ul><li>Visio Project </li></ul><ul><li>InfoPath SharePoint </li></ul>
    6. 6. L e s Add-Ins VSTO <ul><li>Structure de code permettant le développement des solutions Office : </li></ul><ul><ul><li>AddIn Applicatif : Associé à l’application Office (disponible pour tous les documents) </li></ul></ul><ul><ul><li>AddIn Document : Associé à un document, Classeur Excel ou modèle de document </li></ul></ul><ul><li>Permet l’intégration dans Office </li></ul><ul><ul><li>Accès au modèle objet de l’application cible </li></ul></ul><ul><ul><li>Gère le chargement/déchargement </li></ul></ul>
    7. 7. Personnalisation du ruban Office <ul><li>Nouveauté de l’interface Office 2007 </li></ul><ul><ul><li>Remplace les menus et sous menus </li></ul></ul><ul><ul><li>Donne un accès direct aux fonctionnalités en les regroupant par thème  </li></ul></ul><ul><ul><li>Extensible au niveau application & document pour Word, Excel, Outlook & PowerPoint </li></ul></ul>
    8. 8. Personnalisation du ruban Office <ul><li>Visual Studio 2008 fournit un Designer </li></ul><ul><ul><li>Ajouter des onglets / groupes et contrôles </li></ul></ul><ul><ul><li>Modifier les propriétés et les comportements </li></ul></ul>
    9. 9. Personnalisation du ruban
    10. 10. Volet d’actions ou de taches <ul><li>ActionsPane </li></ul><ul><ul><li>Associé à un document Word ou Excel </li></ul></ul><ul><ul><li>Accessible dès l’ouverture du document </li></ul></ul><ul><ul><li>Fournit des actions propres au document </li></ul></ul><ul><li>CustomTaskPane : </li></ul><ul><ul><li>Associé à une application Office </li></ul></ul><ul><ul><li>Disponible durant la durée de vie du processus </li></ul></ul><ul><ul><li>Fournit des actions pour tous les documents </li></ul></ul>
    11. 11. Word Content Controls <ul><li>Disponible pour Word 2007 au niveau document </li></ul><ul><li>Définir des zones de contenu de données spécifiques pour structurer vos documents </li></ul><ul><ul><li>En contrôlant l’interaction de l’utilisateur </li></ul></ul><ul><ul><li>En protégeant des sections de documents de toutes modifications </li></ul></ul><ul><li>Liaison des contrôles aux données sur le modèle des Windows Forms (Objets managés ou source de données) </li></ul><ul><li>Complètement intégré à Visual Studio </li></ul>
    12. 12. Volet d’actions et Word Content Controls
    13. 14. Le format Office Open XML Vue de l’utilsateur MonDoc.docx Vue du développeur : un fichier zip avec des parties XML Propriétés du document Fichier conteneur Commentaires WordML/SpreadsheetML, etc. XML personnalisé Images, video,s sons Styles Graphiques
    14. 15. Un SDK Open XML pourquoi faire ? <ul><li>Permet aux développeurs d’accéder aux documents sans nécessiter Office Automation </li></ul><ul><li>Les outils actuels des développeurs Open XML </li></ul><ul><ul><li>Win Zip , MS XML , et Notepad </li></ul></ul><ul><ul><li>System.IO.Packaging, System.XML, et LINQ </li></ul></ul><ul><li>Le futur des développements Open XML </li></ul><ul><ul><li>Open XML SDK v1 et v2 </li></ul></ul>
    15. 16. Office Automation
    16. 17. Un SDK Open XML pourquoi faire ? <ul><li>Créer des solutions pour des documents Office </li></ul><ul><ul><li>… sur le client et le serveur </li></ul></ul><ul><ul><li>… à la hauteur de la tâche (sans Office Automation) </li></ul></ul><ul><li>Le modèle objet n’a pas été conçu pour des scénarii serveur </li></ul><ul><li>Ne convient pas en terme charge </li></ul><ul><ul><li>Essayer de manipuler 100 documents </li></ul></ul><ul><li>Les boîtes de dialogue “stop” l’automation </li></ul><ul><li>Pratique : les clients reboot l’application toutes les X heures </li></ul>
    17. 18. SDK Open XML v2
    18. 19. Un SDK Open XML pourquoi faire ? <ul><li>Remplacer Office Automation (enfin ?) </li></ul><ul><li>Des avantages : </li></ul><ul><ul><li>Sécurité </li></ul></ul><ul><ul><li>Performance (multithread/multicore/réparti)  ~100+ rapide ! </li></ul></ul><ul><ul><li>Stabilité </li></ul></ul><ul><ul><li>Montée en charge </li></ul></ul><ul><ul><li>Etc </li></ul></ul><ul><li>Apporter une API et des outils d’aide aux développeurs </li></ul>
    19. 20. Le SDK Office Open XML <ul><li>Le SDK Open XML permet un accès aux parties et au contenu des documents </li></ul><ul><li>Rapide (… vraiment très rapide) </li></ul><ul><li>Fonctionne en environnement client ou serveur </li></ul><ul><ul><li>Même sous SharePoint </li></ul></ul><ul><li>Aucun besoin d’Office pour manipuler des documents Office </li></ul><ul><li>Supporte la programmation Linq </li></ul><ul><li>Supporte actuellement ECMA 376 </li></ul>
    20. 21. Formatage du contenu <ul><li>Forcer les standard de formatage des organisations : </li></ul>Open XML Processing
    21. 22. Inspection du contenu Exemple 1 : supression des informations confidentielles, de suivi des modifications ou les métadonnées des documents sortants. Exemple 2 : suppression des macros ou de contenu pouvant porter atteinte des documents entrants. Open XML Processing Open XML Processing
    22. 23. Consommer des documents Les utilisateurs créent des rapports dans un tableur, qui seront ensuite chargé dans des applications serveur. Système back-end (LOB/CRM/etc.) Traitement Open XML Environnement d’édition (Microsoft Office, etc.)
    23. 24. Assemblage de documents <ul><li>Exemple : création de document de prévision depuis les données stockées dans un CRM. </li></ul>Client riche ou web permettant aux utilisateurs de saisir ou de sélectionner des critères. Traitement Open XML
    24. 25. Utilisation du Custom XML <ul><li>Exemple : marquer le contenu d’un document avec une sémantique personnalisée pour traitement dans un système serveur. </li></ul>Environnement d’édition Traitement Open XML
    25. 26. SDK Open XML v2 Démo commune
    26. 27. Le SDK Open XML v1 <ul><li>Typage des classes des parties </li></ul><ul><li>Le SDK v1 permet de manipuler les parties uniquement (surcouche de System.IO.Packaging) </li></ul><ul><li>Disponibilité du Open XML SDK : </li></ul><ul><ul><li>La version 1 est disponible aujourd’hui en Go Live </li></ul></ul><ul><ul><li>Espace de nom Microsoft.Office.DocumentFormat.OpenXml.Packaging </li></ul></ul>
    27. 28. Le SDK Open XML v2 <ul><li>Utilisation de System.IO.Packaging </li></ul><ul><li>Le SDK v2 permet de manipuler le contenu </li></ul><ul><li>Disponibilité du Open XML SDK en Community Preview </li></ul><ul><ul><li>Devrait être disponible en même temps que “Office 14” </li></ul></ul><ul><ul><li>Espace de nom DocumentFormat.Open Xml </li></ul></ul>
    28. 29. Génération d’un document Word <ul><li>using (WordprocessingDocument package = WordprocessingDocument.Create(docName, WordprocessingDocumentType.Document)) </li></ul><ul><li>{ </li></ul><ul><li>// Ajouter une partie de contenu au document package.AddMainDocumentPart(); </li></ul><ul><li>// Créer le contenu de votre document package.MainDocumentPart.Document = </li></ul><ul><li>new Document( </li></ul><ul><li> new Body( </li></ul><ul><li> new Paragraph( </li></ul><ul><li> new Run( </li></ul><ul><li> new Text(&quot;Bonjour à tous!&quot;))))); </li></ul><ul><li>// Enregistrer le contenu dans le document package.MainDocumentPart.Document.Save(); </li></ul><ul><li>} </li></ul>
    29. 30. SDK Open XML v2
    30. 31. Architecture SDK Open XML System Support .Net 3.5 System.IO.Packaging Open XML Schemas Open XML File Format Base Level Reading/Writing Low Level DOM Packaging API Open XML File Format Higher Level Schema Level Validation Semantic Level Validation Helper Functions
    31. 32. Le SDK Open XML n’est pas … <ul><li>… un remplacement du modèle objet d’Office (VBA ou VSTO), </li></ul><ul><li>… une aide absolue. Vous manipulez le format Open XML, vous devrez connaître celui-ci, </li></ul><ul><li>… un convertisseur de formats (Open XML vers HTML, XPS vers Open XML, etc), </li></ul><ul><li>… capable de valider un document si vous modifiez vous-même le XML des parties sans passer par le modèle objet du SDK, </li></ul><ul><li>… n’est pas une boîte à outils fonctionnels. </li></ul>
    32. 34. OpenXml Diff – SDK v2 <ul><li>Permet de faire la différenciation de documents Open XML </li></ul>
    33. 35. Class Explorer – SDK v2 <ul><li>Véritable documentation : </li></ul><ul><ul><li>Classes </li></ul></ul><ul><ul><li>Spécifications ECMA-376 </li></ul></ul>
    34. 36. Document Reflector – SDK v2 <ul><li>Outil pour débutants et experts </li></ul><ul><li>Génération du code C# utilisant le SDK Open XML à partie d’un document </li></ul>
    35. 38. VSTO PowerTools <ul><li>Ouvre et édite les documents Open XML dans Visual Studio </li></ul><ul><ul><li>http://www.microsoft.com/downloads/details.aspx?FamilyID=46B6BF86-E35D-4870-B214-4D7B72B02BF9 </li></ul></ul>
    36. 39. Open XML Viewer <ul><li>Convertisseur Open XML  HTML </li></ul><ul><li>Projet Open Source disponible sur Codeplex: </li></ul><ul><li>http://www.codeplex.com/OpenXMLViewer </li></ul>
    37. 40. B2XConverter <ul><li>Convertisseur binaires (Word, Excel, PPt)  Open XML </li></ul><ul><li>Guide de conversion </li></ul><ul><li>Migration massive de documents </li></ul><ul><li>Disponible sur sourceforge : http://b2xtranslator.sourceforge.net/ </li></ul>
    38. 41. PowerTools Open XML <ul><li>Un ensemble de +30 cmdlets pour créer ou modifier les documents Open XML </li></ul><ul><ul><li>Suppression des commentaires, acceptation des révisions, etc. </li></ul></ul><ul><li>Supporte les “pipes” de PowerShell </li></ul><ul><li>Construit sur base du Open XML SDK v1 </li></ul><ul><li>Disponible sur CodePlex sous licence Ms-PL www.codeplex.com/PowerTools </li></ul><ul><ul><li>Les IT et les développeurs peuvent créer des scripts batch en utilisant PowerTools </li></ul></ul>
    39. 42. PowerTools for Open XML
    40. 43. Implementation Notes <ul><li>Détail de l’implémentation du format Open XML ECMA-376 dans Office 2007 </li></ul>
    41. 45. Synthèse <ul><li>VSTO permet de créer des solutions côté client en profitant des avantages de la suite Office </li></ul><ul><li>Office Open XML est un standard ouvert ISO </li></ul><ul><li>Le SDK Open XML v2 est une abstraction quasi complète du format Office Open XML </li></ul><ul><li>Le format Open XML permet de créer des documents Office côté serveur sans Office </li></ul><ul><li>Aujourd’hui, une pléthore d’outils, de SDKs sur tous les environnements et toutes les plateformes </li></ul>
    42. 46. Références <ul><li>Centre de développement VSTO : http://msdn.microsoft.com/fr-fr/vsto/default(en-us).aspx </li></ul><ul><li>Téléchargement du SDK Open XML v1 : http://go.microsoft.com/fwlink/?LinkId=120908 </li></ul><ul><li>Téléchargement du SDK Open XML v2 : http://go.microsoft.com/fwlink/?LinkId=127912 </li></ul><ul><li>Site Connect du SDK : https://connect.microsoft.com/site/sitehome.aspx?SiteID=589 </li></ul><ul><li>OpenXML Developers : www.openxmldevelopers.com </li></ul><ul><li>Blog Julien Chable dédié à Open XML : http://blogs.developpeur.org/neodante/ </li></ul>
    43. 48. Génération de documents Office côté serveur avec OpenXML et VSTO Julien Chable http://blogs.developpeur.org/neodante Consultant / Développeur Wygwam <ul><li>Code Session : POS206 </li></ul>Sébastien Bovo http://blogs.msdn.com/sbovo/ Apps Development Consultant Microsoft
    44. 49. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Votre potentiel, notre passion TM

    ×