31
« Les Mercredis du « Les Mercredis du développement » développement » Nouveau format de Nouveau format de fichier fichier Template Solution Template Solution Présenté par Pierre Lagarde [email protected] Relation Développeurs Microsoft France Level Level 200 200

« Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde [email protected] Relation Développeurs

Embed Size (px)

Citation preview

Page 1: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

« Les Mercredis du développement »« Les Mercredis du développement »

Nouveau format de fichierNouveau format de fichierTemplate SolutionTemplate Solution

Présenté par Pierre Lagarde

[email protected] Développeurs

Microsoft France

Level 200Level 200Level 200Level 200

Page 2: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Nouveau format de fichier Office "12"Nouveau format de fichier Office "12"IntroductionIntroduction

ArchitectureArchitecture

AvantagesAvantages

Scénario de développementScénario de développement

Template Office "12"Template Office "12"Customisation de l’interface utilisateurCustomisation de l’interface utilisateur

Données XML dans les documentsDonnées XML dans les documents

AgendaAgenda

Page 3: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Evolution des formats Evolution des formats

Office 2000InnovationPropriétés du

document sauvegardé en XML

Office 97Nouveau format binaire(celui d’aujourd’hui)

Office XPPremier format XMLFeuille de calcul Excel

Office 2003Support du format XMLWordML, ExcelMLSchéma métier

Office “12”Nouveaux formats

XMLFormat XML par défautWord, Excel,

Powerpoint

“12”

Page 4: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Manipuler les documents Manipuler les documents office aujourd’huioffice aujourd’hui

Office 2000/XPOffice 2000/XPPar automation en utilisant le model objet COMPar automation en utilisant le model objet COM

Scénario server, installer Office sur le serveurScénario server, installer Office sur le serveurPas supportéPas supporté

Problème de performanceProblème de performance

Problème de montée en chargeProblème de montée en charge

Office 2003Office 2003Meilleur support des scénarii serveurMeilleur support des scénarii serveur

WordML et ExcelMLWordML et ExcelML

Mise à disposition d’un « Data Island » manipulable via des Mise à disposition d’un « Data Island » manipulable via des class de VSTOclass de VSTO

Nécessite la connaissance des schémas XML Office 2003Nécessite la connaissance des schémas XML Office 2003

Nécessite parfois des transformations XSLTNécessite parfois des transformations XSLT

Page 5: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Microsoft Office Open XML Microsoft Office Open XML File FormatsFile Formats

Macro-FreeMacro-Free Macro-EnabledMacro-Enabled

DocumentDocument TemplateTemplate DocumentDocument TemplateTemplate

docx dotx docm dotm

pptx potx pptm potm

xlsx xltx xlsm xltm

Open Packaging ConventionOpen Packaging Convention

Page 6: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

CompatibilitéCompatibilité

Office "12"Office "12"Support des formats Office 97-2003 binaireSupport des formats Office 97-2003 binairePossibilité de changer le type de Possibilité de changer le type de sauvegarde par défautsauvegarde par défautContinuité dans le format XML d’Office Continuité dans le format XML d’Office 2003 et XP2003 et XP

Office 2000, Office XP, Office 2003 Office 2000, Office XP, Office 2003 supporteront le nouveau formatsupporteront le nouveau format

Patch disponible au lancement d’Office Patch disponible au lancement d’Office "12""12"Ouverture, Edition et SauvegardeOuverture, Edition et Sauvegarde

Page 7: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Office Open XML ArchitectureOffice Open XML Architecture

Questionnaire.docx

Vu Utilisateur: Un seul fichier

Page 8: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Office Open XML ArchitectureOffice Open XML Architecture

Questionnaire.docx

Vu Utilisateur: Un seul fichier

Vu développeur: fichier zip

Questionnaire.docx

Page 9: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Office Open XML ArchitectureOffice Open XML Architecture

Questionnaire.docx

Questionnaire.docx

Package

Vu Utilisateur: Un seul fichier

Vu développeur: fichier zip

Page 10: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Office Open XML ArchitectureOffice Open XML Architecture

Questionnaire.docx

Questionnaire.docx

Package

[Content Types].xml

Vu Utilisateur: Un seul fichier

Vu développeur: fichier zip

Page 11: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Office Open XML ArchitectureOffice Open XML Architecture

Questionnaire.docx

Questionnaire.docx

Package

Document Partsword / xl /ppt

[Content Types].xml

Vu Utilisateur: Un seul fichier

Vu développeur: fichier zip

Page 12: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Office Open XML ArchitectureOffice Open XML Architecture

Questionnaire.docx

Questionnaire.docx

Package

Document, Application, Custom Document PropertiesdocProps

Document Partsword / xl /ppt

[Content Types].xml

Vu Utilisateur: Un seul fichier

Vu développeur: fichier zip

Page 13: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Office Open XML ArchitectureOffice Open XML Architecture

Questionnaire.docx

Questionnaire.docx

Package

Relationships_rels

Document, Application, Custom Document PropertiesdocProps

Document Partsword / xl /ppt

[Content Types].xml

Vu Utilisateur: Un seul fichier

Vu développeur: fichier zip

Page 14: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Office Open XML ArchitectureOffice Open XML Architecture

Questionnaire.docx

Questionnaire.docx

Package

Relationships_rels

Document, Application, Custom Document PropertiesdocProps

Document Partsword / xl /ppt

[Content Types].xml

Custom Defined XML, Macros, …custom fld

Vu Utilisateur: Un seul fichier

Vu développeur: fichier zip

Page 15: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Nouveau format de fichierNouveau format de fichier

demodemo

Page 16: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Scénario DéveloppeurScénario Développeur

Créer des solutions de lecture, écriture Créer des solutions de lecture, écriture modification sur les fichiers Office sans passer modification sur les fichiers Office sans passer par l’API Officepar l’API Office

Utilisation des API WinFX Utilisation des API WinFX

Ouverture du fichier Open XML OfficeOuverture du fichier Open XML Office

Maintien des « Part » et des « Relations » dans le Maintien des « Part » et des « Relations » dans le fichierfichier

Programmation XMLProgrammation XML

XPath – Navigation dans le contenuXPath – Navigation dans le contenu

XML DOM – Manipulation du contenuXML DOM – Manipulation du contenu

Page 17: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

API WinFxAPI WinFx

Microsoft WinFX Software Development Microsoft WinFX Software Development Kit (SDK CTP Janvier)Kit (SDK CTP Janvier)

System.IO.Packaging namespace System.IO.Packaging namespace Ajouter des “Part”, Ajouter des “Part”,

Mise à jour du contenu, Mise à jour du contenu,

Créer des nouvelles relationsCréer des nouvelles relations

Importer les ClassesImporter les ClassesPackage, Package,

PackagePart, PackagePart,

PackageRelationshipPackageRelationship

Page 18: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

System.IO.PackagingSystem.IO.Packaging

using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); }}

1.1. Open the packageOpen the package

Page 19: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

System.IO.PackagingSystem.IO.Packaging

using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); }}

1.1. Open the packageOpen the package

2.2. Access a document part (GetPart)Access a document part (GetPart)

Page 20: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

System.IO.PackagingSystem.IO.Packaging

using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); }}

1.1. Open the packageOpen the package

2.2. Access a document part (GetPart)Access a document part (GetPart)

3.3. Create a document part (CreatePart)Create a document part (CreatePart)

Page 21: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

System.IO.PackagingSystem.IO.Packaging

using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); }}

1.1. Open the packageOpen the package

2.2. Access a document partAccess a document part

3.3. Create a document partCreate a document part

4.4. Add content to the document partAdd content to the document part

Page 22: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Scénario développeurScénario développeur- Génération de document- Génération de document- Assemblage d’un document- Assemblage d’un document- Manipulation de document- Manipulation de document

demodemo

Page 23: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Customisation de l’interface utilisateur Customisation de l’interface utilisateur dans les templates Office "12"dans les templates Office "12"

Les templates Office "12" peuvent stocker un fichier Les templates Office "12" peuvent stocker un fichier XML de description d’interface pourXML de description d’interface pour

Ajouter des ongletsAjouter des onglets

Ajouter des entrées dans le menu fichierAjouter des entrées dans le menu fichier

Ajouter des contrôles dans les ongletsAjouter des contrôles dans les onglets

AvantagesAvantagesCustomisation de l’interface utilisateur par template de Customisation de l’interface utilisateur par template de documentdocument

Facile à mettre en place pour le développeurFacile à mettre en place pour le développeur

Page 24: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Deux méthodes de Deux méthodes de customisation de l’interfacecustomisation de l’interface

Dans le template (Statique)Dans le template (Statique)Inclu dans le documentXInclu dans le documentXPossibilité de faire des actions Possibilité de faire des actions via VBAvia VBA

Sous forme d’Application Sous forme d’Application (dynamic)(dynamic)

Via .NET « shared add-in »Via .NET « shared add-in »

Specific Doc/Template

Doc Parts

Custom UI

ActionHandlers

Any Document

Custom UIAction

Handlers

Shared Add-In

Page 25: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Customisation (Statique)Customisation (Statique)1.1. Créer un fichier XML de description du Créer un fichier XML de description du

RubanRuban2.2. Ouvrir le fichier ZIP Office "12"Ouvrir le fichier ZIP Office "12"3.3. Ajouter le fichier XML Ruban au ZIPAjouter le fichier XML Ruban au ZIP4.4. Ajouter un nouveau « Content type »Ajouter un nouveau « Content type »

5.5. Ajouter une nouvelle relation Ajouter une nouvelle relation

6.6. Renommer le fichier ZIP en template Office Renommer le fichier ZIP en template Office "12""12"

<Override PartName="/customui/customui.xml“ContentType="application/xml"/>

<Relationship Id="rId*" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility"

Target="customui/customui.xml"/>

Page 26: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Customisation (Statique)Customisation (Statique)

demodemo

Page 27: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Stockage XML dans les Stockage XML dans les documents Office “12”documents Office “12”

Les données XML sont Les données XML sont séparées du reste du séparées du reste du documentdocument

Toutes les données sont Toutes les données sont stockés en XML stockés en XML

Les propriétés du documentLes propriétés du document

Les métadonnées WSSLes métadonnées WSS

Les données utilisateurs (avec ou Les données utilisateurs (avec ou sans schéma)sans schéma)

Les données XML sont Les données XML sont exploitables via DOM sans exploitables via DOM sans utiliser l’API Office "12"utiliser l’API Office "12"

Doc/Template

Doc Parts

VBA

XML

External App

Page 28: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Les XML dans les documents Les XML dans les documents

Sans schéma Sans schéma (VBA ou WordML et Excel ML)(VBA ou WordML et Excel ML)

Page 29: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Les XML dans les documentsLes XML dans les documents

Avec schémaAvec schéma

Customers

oContentControl.XMLMapping.SetMapping(xpath, , oCustomXMLPart)

Page 30: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs

Données métier XML dans Données métier XML dans les documents Office "12"les documents Office "12"

demodemo

Page 31: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs