Vous êtes sur la page 1sur 62

30 Septembre 2007

Livre blanc Office 2007


Une plate-forme pour les applications mtier plate forme

Daniel COHEN-ZARDI Carl ANDERSON

30 Septembre 2007

Table des Matires


I. II. III. A. B. C. IV. A. B. C. D. E. V. A. B. C. D. E. F. G. H. VI. A. B. C. D. E. VII. VIII. Pourquoi ce livre blanc ? ................................ ................................................................................................ ................................................. 4 Contenu du livre blanc ................................................................................................ ................................ .................................................... 6 Les enjeux des clients ................................................................................................ ................................ .................................................. 7 La problmatique et son historique ............................................................................................ 7 ............................ Les nouveaux scnarios attendus................................................................................................ 8 ................................ Le rle des diteurs de logiciels ................................................................................................ 10 ................................ La valeur ajoute dOffice 2007 ................................................................................................ 12 ................................ La nouvelle interface utilisateur ................................................................................................ 12 ................................ Louverture des formats ................................ ................................................................................................ ............................................ 12 Lextensibilit programmatique et Office Business Applications ................................ ........................................ 13 Les fonctions novatrices ................................ ................................................................................................ ............................................ 14 Compatibilit applicative avec les versions prcdentes .................................................... 15 .................... Les applications relles des diteurs de logiciels utilisant Office 2007................................ ......................................... 16 Calypteo................................................................................................................................ 16 ................................ ..................................... Esker ................................................................ ................................................................................................ .......................................... 20 ILOG ................................................................ ................................................................................................ ........................................... 23 MGDIS ................................................................ ................................................................................................ ........................................ 26 Symtrax ................................ ................................................................................................................................ ...................................... 30 Medasys................................................................................................................................ 31 ................................ ..................................... SoftFluent ................................................................................................................................ 32 ................................ .................................. Autres diteurs .......................................................................................................................... 34 ................................ .......................... Les prototypes dvelopps par SoftFluent................................................................ SoftFluent ................................................ 35 La personnalisation dOffice 2007 ............................................................................................. 35 ............................. Laccs aux donnes mtier par Web Service ................................................................ ........................................... 42 La sparation donnes/prsentation dans un document Word 2007 ................................ ...................................... 48 La cration dynamique de prsentations Powerpoint .............................................................. 53 .............................. Lutilisation du protocole Webdav ............................................................................................ 59 ............................ Conclusion ................................ ................................................................................................................................ 60 ................................. Quelques liens utiles ................................ ................................................................................................ ................................................. 61

30 Septembre 2007

Remerciements
Remercions tout dabord : Les diffrents contributeurs de ce document, et en tout premier lieu les diffrents diteurs de logiciels cits dans ce livre blanc. La socit RL Consulting qui collabore rgulirement avec SoftFluent et a ralis lintgration de SharePoint 2007 pour le compte dILOG. Les diffrentes quipes de Microsoft qui ont su faire preuve de ractivit pour rpondre nos questions lorsque ncessaires.

Avertissement
Ce document est fourni titre dinformation. SOFTFLUENT NE DONNE PAS DE GARANTIE, IMPLICITE NTIE, OU EXPLICITE, CONCERNANT LES INFORMATIONS FOURNIES DANS CE DOCUMENT. SoftFluent et les socits cites dans ce livre blanc peuvent disposer de brevets, marques, des droits t de copie ou de proprit intellectuelle sur des sujets couverts dans ce document. Sauf mention expresse faisant partie dun contrat de licence sign avec ces socits, la fourniture de ce document , ne vous donne aucune licence particulire et aucun droit dutilisation sur ces brevets, marques, droits de copie ou proprit intellectuelle. ntellectuelle. Les noms des socits et produits mentionns dans ce document sont des marques dposes de dpos leurs propritaires respectifs. 2007 SOFTFLUENT. Tous droits rservs. .

30 Septembre 2007

I.

Pourquoi ce livre blanc ?


Ce livre blanc sadresse aux professionnels du dveloppement du march francophone et plus dveloppement largement aux personnes qui sintressent lvolution des plates-formes de dveloppement. Office sintresse formes 2007 tant lapplication utilisateur la plus dploye au monde, son volution de plus en plus marque vers la constitution dune plate-forme de dveloppement mrite que tout dcideur stitution plate forme technologique value limpact de cette transformation. transformation Ce livre blanc montre trs concrtement comment les applications peuvent combiner des informations dites structures (celles qui sont prvues dans les schmas des applications mtiers) celles et les informations traditionnellement qualifies de non structures et qui rsident au sein de documents bureautiques. Plutt quopposer ces approches de la gestion de linformation, linformaticien pragmatique linformaticien privilgiera la connexion entre les deux, les documents non structurs contenant bien souvent des informations vitales au fonctionnement de lentreprise et la prise de dcision des utilisateurs. Pouvoir connecter ces documents aux rfrentiels structurs lui permettra dviter le pige de la duplication et de lincohrence, qui aboutit bien souvent des pertes de productivit ou de la perte o dinformation.

Rduire les cots Innover Se diffrentier Sappuyer sur un march Garantir lvolution

Les bnfices stratgiques qui constituent lopportunit Office 2007 constituent

Opportunit Office 2007

30 Septembre 2007

Dun point de vue stratgique, construire son dveloppement sur Office 2007 est un moyen de : d 1. Rduire les cots car on bnficie ainsi des fonctionnalits dOffice moyennant un effort de dveloppement rduit, y compris leffort ergonomique, particulirement affirm dans la leffort version 2007, 2. Se positionner sur le terrain de linnovation et tre peru comme la pointe par les l utilisateurs de vos applications, 3. Se diffrentier par rapport la concurrence et pouvoir effectuer un marketing diffrent en marketing jouant la carte de la simplicit, de lexprience intgre et du service rendu aux utilisateurs, 4. Sappuyer sur la part de march dOffice, une application qui dispose de centaines de millions dutilisateurs dans le monde, 5. Bnficier de la prennit des informations non structures grce au nouveau format standardis Open XML propos par Office 2007.

Sur ce dernier point, on notera le rle prpondrant que joue Open XML dans la poursuite de prpondra lobjectif de connexion des diffrents types de donnes de lentreprise. Ce format permet une relle rents sparation entre les donnes structures selon un schma mtier et les autres donnes, comme le dmontrent les prototypes exposs en dernire partie de ce livre blanc. On ne saurait en outre out minimiser limportance du processus de standardisation en cours autour de ce format, approche soutenue bien sr par Microsoft mais galement par un nombre croissant dacteurs du march.

30 Septembre 2007

II.

Contenu du livre blanc


Ce document cible donc tout professionnel de linformatique amen prendre des dcisions dvolution de systmes mettant en jeu des applications mtiers. Ces professionnels peuvent tre des dcideurs au sein des fournisseurs technologiques, diteurs de logiciels ou socits de services, tout autant que des dcideurs positionns du ct des clients et qui doivent valuer des scnarios dvolution de leurs systmes, tout en suivant de prs la capacit de leurs fournisseurs accompagner lvolution technologique. gner Au-del de lintroduction et de la conclusion, nous avons donc structur ce document en plusieurs del c parties principales : Les enjeux des clients est une partie qui repositionne le besoin et dcrit les scnarios attendus par les utilisateurs et donc lopportunit de march que constituent ces attentes, c La valeur ajoute dOffice 2007 est une partie qui met en exergue les fonctionnalits dOffice 2007 tudier de prs car elles sont particulirement cratrices de valeur et donc porteuses dopportunits potentielles dans votre mtier, Les applications relles des diteurs de logiciels utilisant Office 2007 est u partie es une pdagogique qui donne des exemples concrets de ce quont dj ralis les diteurs de logiciels du march franais, Les prototypes dvelopps par SoftFluent est une partie vocation technique qui expose e les dtails de mise en uvre de fonctionnalits notables et taye donc les parties es prcdentes.

Les premires parties sont donc rdiges pour tout public informaticien, en se concentrant sur le , Pourquoi ? , et en vitant de rentrer trop dans les considrations techniques du Comment ? . le omment La partie Prototypes est destine plus spcifiquement aux dveloppeurs, qui sont dexprience plus rceptifs aux exemples quils peuvent reproduire. Notons que ces prototypes ont t dvelopps par SoftFluent dans le cadre dune mission dassistance aux diteurs de logiciels mene pour le compte de Microsoft France Ils correspondent donc une compilation de rponses France. techniques des besoins rels exprims par les diteurs de logiciels du march. Enfin, nous avons compil en fin de document une slection de liens utiles pour qui souhaite creuser le sujet au-del de ce livre blanc.

30 Septembre 2007

III. Les enjeux des clients


A. La problmatique et son historique
Les entreprises sont confrontes des enjeux rcurrents dans la gestion de linformation. Les premires applications informatiques visaient automatiser les processus de gestion dune fonction particulire de lentreprise et le stockage des donnes associes. Les applications mtiers au sens classique o lentendent les directions informatiques, et dans lesprit des professionnels du secteur, se proccupent en gnral de la gestion de donnes structures. Linformation est range dans des cases prformattes avec des structures modlises selon des schmas mtiers. Ces applications se distinguent des applications issues de la bureautique ou des applications de gestion documentaire, qui reposent sur un paradigme diffrent. En effet, les suites bureautiques et applications de travail collaboratif sont centres sur les fichiers et linformation est bien souvent atif dissmine dans de multiples fichiers, avec une gestion qui repose en priorit sur lutilisateur. De fait, la cohrence est difficile garantir dans un modle de ce type, do le dnigrement historique de la dnigrement bureautique par les services informatiques. Pourtant, les informations contenues dans ces documents sont souvent prcieuses, quand elles ne sont pas les donnes les plus critiques de lentreprise !

Historique Univers bureautique


Information non structure Utilisateurs

Tendance

Utilisateurs

Liens limits (frontire implicite)

Informaticiens

Information structure

Informaticiens
Les versions rcentes dOffice et en particulier ldition 2007 rapproche la bureautique du monde de linformation structure, et comble une partie du foss entre les utilisateurs et les informaticiens

Applications dentreprises

On pourrait disserter longtemps sur les responsabilits respectives des informaticiens et des ourrait utilisateurs, mais le fait est que la bureautique apporte la flexibilit quil est difficile de prvoir totalement dans les applications manipulant de linformation structure. s

30 Septembre 2007

Ds lors, le rle de linformaticien est aussi de fournir ses clients, qui sont les autres services de lentreprise, les moyens de mettre en uvre cette flexibilit, tout en proposant des applications applic mtiers suffisamment adaptes et souples pour que linformation critique termine dans les our structures de stockage prvues par ces applications. Cela suppose de faire converger des mondes historiquement trs diffrents, les applications mtiers provenant de lhistorique des mainframes et la bureautique tant issu de lavnement de autique lordinateur personnel. Bien sr, la convergence entre ces deux mondes a dj commenc il y a bien ce longtemps. Mais certaines limites des versions prcdentes des applications bureautiques font que ltat de lart en matire dintgration bureautique avec les applications se rsume : intgration

Des exports de donnes notamment vers les tableurs, Des publipostages pilots sur le poste client par automatisation directe, Parfois des publipostages raliss sur le serveur avec des difficults dexploitation ou la mise difficults en place spcifique dune logique de gestion de file dattente, De lenvoi de messages lectroniques pour sous tendre un processus de workflow. sous-tendre

B. Les nouveaux scnarios attendus ouveaux


La dimension limite de cette intgration se traduit en gnral par une perte defficacit pour lutilisateur dun mtier donn. Les scnarios attendus par les utilisateurs incluent en gnral des besoins qui vont au au-del de ceux voqus au paragraphe prcdent. Parmi les demandes rcurrentes que souhaitent faire les entreprises : 1. Gnrer des documents ct serveur, sans avoir besoin dinstaller doutil bureautique sur le serveur, et avec une exploitabilit fiable : le format Open XML permet de faire cela, quelle que soit la technologie utilise sur le serveur dailleurs. r 2. Supporter un workflow de travail au travers dun document qui est complt par diffrents acteurs selon des tapes successives, 3. Mixer de linformation structure et de linformation saisie libre. Cest le cas classique dun document structure et contenu souple, mais qui comprend des lments prcis dinformation ocument des endroits et qui doivent tre traits comme tels. Souvent, ce besoin saccompagne de la ncessit de protger des parties du document qui deviennent non modifiables. modifia 4. Cadrer la saisie de linformation des documents bureautiques, afin de pouvoir extraire les donnes structures et les intgrer dans des applications mtiers. 5. Manipuler des informations issues des applications mtiers de lentreprise, directement au sein s de lunivers bureautique : remplissage dun document Word de manire interactive, constitution dun tat de synthse dans Office Excel, gnration automatique dune prsentation Powerpoint Excel, de synthse des rsultats commerciaux par zone

30 Septembre 2007

Illustrons ces quelques scnarios thoriques non exhaustifs par des exemples concrets. s
Scnario 1 : Sur le site de sa banque, un client peut consulter son compte et, dun simple clic, gnrer sur son PC une feuille de calcul contenant toutes les donnes historiques de ses comptes & portefeuilles, ou un tableau damortissement de prt ; il peut ensuite travailler sur ces donnes (par exemple faire varier la dure damortissement de son prt) avec les outils bureautiques sur son PC personnel. La gnration de feuille de calcul au format Open XML est possible partir dun applicatif . c mtier de type Tenue de Compte, fonctionnant dans tout type denvironnement (Windows/SQL, Unix/Linux-Oracle, ). Open XML permet notamment la spcification prcise des formules de calcul qui doivent tre utilises.

La structure XML permet galement de rduire les risques de corruption de fichiers, et de renforcer la scurit de ces changes via Internet.
Scnario 2 : Un constructeur davions veut mettre en place un systme de gestion de la maintenance sophistiqu, permettant aux oprateurs daccder trs facilement la documentation pertinente pour des milliers de pices dtaches. La recherche dinformation et la mise jour scurise sont facilites par lutilisation du format Open XML pour lensemble de cette documentation bureautique ; par exemple, les documents peuvent tre automatiquement mis jour lorsquune modification est faite dans le systme de conception des pices. Le caractre normalis d dOpen XML est galement un facteur important pour la prennit de cette documentation critique. Enfin, les spcifications Open XML prcisent comment mettre en uvre des fonctionnalits de recherche avance, et permettent la gestion de versions multiples dun document. v

Le workflow de travail sur ces documents et les diffrentes versions est sous-tendu par la brique sous tendu SharePoint dOffice 2007.
Scnario 3 : Un directeur dagence Banque Prive souhaite adresser ses clients un document de synthse prsentant de faon attractive lvolution de leur patrimoine. Open XML permet de gnrer partir des applicatifs mtiers un document de qualit professionnelle de type Powerpoint ou Word, et de mettre celui-ci la disposition du Conseiller Financer pour que celui-ci y ajoute ses ci celui ci commentaires personnaliss de faon structure, tout en protgeant les zones non modifiables (voir notamment les prototypes plus loin pour des exemples de mise en uvre). Les auteurs de ces . documents recourent frquemment aux notes de bas de page / rfrence, pour en faciliter la lecture. lecture On peut imaginer un workflow permettant plusieurs acteurs de collaborer pour mettre jour ce document. Plus simplement, Open XML permet de raliser des oprations de publipostage plus industrielles quauparavant. Scnario 4 : Un grand groupe franais, leader mondial de la pharmacie, change rgulirement des informations avec les autorits de contrle des diffrents pays, sur lavancement des tests cliniques de nouveaux produits, mais aussi sur le contrle qualit de ses fabrications. En interne, ce groupe a choisi de convertir lensemble de son patrimoine bureautique au format Open XML ( laide dutilitaires automatisant la migration qui sont fournis en standard avec Office), pour garantir la ilitaires ), prennit long terme de ces documents importants. Open XML permet galement de mettre en uvre des mtadonnes de protection de la proprit intellectuelle (citations, rfrences) (citations, essentielles pour protger le travail des chercheurs.

30 Septembre 2007

De nombreux rapports sont de type semi-structur, avec des commentaires des mdecins traitants, semi structur, et des donnes chiffres issues des tests. Un applicatif mtier extrait les donnes pertinentes, en utilisant un schma XML mtier spcifique la pharmacie1, pour les communiquer sous forme de fichier Open XML aux autorits sanitaires, qui peuvent les reconnatre automatiquement dans leurs systmes.
Scnario 5 : Un groupe de gestion immobilire souhaite permettre ces gestionnaires dditer des documents concernant les biens quil administre. Dans Office Word, le gestionnaire peut rapidement , diter une fiche de bien en appelant un service web mtier de lapplication qui renseigne automatique des parties du document, aprs saisie dans le volet Office de lidentifiant du bien. Par ailleurs, le gestionnaire utilise des tableaux croiss dynamiques Excel pour suivre lactivit, et effectue des requtes directement sur le systme mtier, grce un complment dvelopp en .NET et disponible directement dans un ruban Office 2007.

Enfin, le directeur commercial et les chefs de groupe, ditent automatiquement des prsentations Powerpoint gnres partir des tableaux de bords consolids.

C. Le rle des diteurs de logiciels e


Lobjectif de ce livre blanc tant dexpliquer en quoi Office 2007 devient une plate plate-forme dapplications, il nous semble crucial dinsister sur le rle des diteurs de logiciels.

Utilisateurs

Applications dentreprises

Editeurs de logiciels applicatifs

Editeurs de platesformes et outils

Les diteurs de logiciels jouent en effet un rle dterminant dans lavnement des plates-formes de plates par leur position de dmultiplication du dploiement vers les utilisateurs. utilisateurs

Par exemple CDISC, schma XML cr pour grer les Donnes Cliniques (www.cdisc.org)

30 Septembre 2007

Il y a 15 ans, Windows a pris le pas sur OS/2 principalement grce la cration dun cosystme un dapplications plus grand que son concurrent. Ces applications apparaissent pour satisfaire des besoins fonctionnels prcis, pour les particuliers ou les entreprises. Ils jouent un rle de dmultiplication entre les plates-formes et outils et les applications disponibles aux utilisateurs. formes outils En ce sens, il est difficile de revendiquer une volution dOffice 2007 vers un positionnement de plate-forme sans sintresser lcho quil recueille auprs des diteurs de logiciels, ces socits qui forme investissent en amont dans la technologie pour satisfaire un nouveau besoin lchelle dun march. De plus, lvolution de linformatique amne mcaniquement une standardisation des couches dites basses puis horizontales , et les diteurs de logiciels, notamment dentreprise, sont iciels, amens verticaliser leur offre pour rpondre des besoins de plus en plus spcialiss. Ds lors, leur diffrenciation passe par la capacit couvrir ces besoins de plus en plus pointus, tout en tirant parti au mieux de ltat de lart technologique, mais sans forcment devoir crer cet tat de lart que quelques grands acteurs amnent sur un nombre limit de standards. amne Pour parler de plate-forme, il est donc intressant de constater que des entreprises dveloppent forme, effectivement des applications sappuyant sur Office 2007, mais il est encore plus notable dobserver fectivement les investissements raliss par les diteurs de logiciels pour dvelopper des applications quils proposeront au march. Cest la raison pour laquelle laccent est mis dans ce livre blanc sur lusage et laccueil dOffice 2007 cent par des diteurs de logiciels reprsentatifs de diffrents domaines, que ceux-ci soient verticaux ou domaines ci horizontaux. On notera tout de mme que lorientation entreprise, voulue par Microsoft, correspond Microsoft, la typologie dditeurs que nous observons.

30 Septembre 2007

IV. La valeur ajoute dOffice 2007


A. La nouvelle interface utilisateur
Lun des changements majeurs introduits par Office 2007 est la refonte complte de linterface n graphique : lintgralit des menus traditionnels et barres doutils ont t remplacs par un ruban, un us doutils menu Office ainsi quune barre daccs rapide. Ce lifting a pour but de faciliter lutilisation des rapide fonctionnalits Office en les rendant disponible pour lutilisateur tout moment et surtout quelques clics. En effet, lapparition des rubans est contextuelle en fonction des lments slectionns par lutilisateur et de la position de son curseur. La contrepartie est un temps dadaptation pour les utilisateurs, mais cette ergonomie a t prouve par de nombreux tests et savre assez commode lusage, en plus dtre trs esthtique. Cela permet galement facilement aux diteurs de logiciels de s dvelopper leur propre ruban, un indicateur clair de lorientation plate-forme. plate De plus, Microsoft autorise lutilisation de cette ergonomie en dehors dOffice, condi , condition den respecter les rgles et la philosophie. Ceci veut dire quune application qui ne ncessite pas du tout Office peut sinspirer de cette ergonomie base de rubans, sans pour autant devoir payer un quelconque droit de proprit intellectuelle, car la licence associe est gratuite (cf programme de oit licence sur http://msdn2.microsoft.com/en http://msdn2.microsoft.com/en-us/office/aa973809.aspx ).

B. Louverture des formats


Louverture des formats dOffice dans la version 2007 au travers dOpen XML est aussi une volution vers trs importante. Souvent minimis car limpact court terme nest pas trs visible, ce point est en ouvent fait dterminant pour lvolution de lindustrie du logiciel. logiciel Le format de fichier Open XML est un standard ECMA (organisme de standardisation dment standard accrdit par lISO et faisant partie des rares organismes pouvoir bnficier du dispositif de soumission rapide lISO dit fast track ) sous la rfrence Ecma 376 et est en cours de normalisation lISO sous le n 29500. Ce standard a t labor au sein du Technical Committee 45 ISO 29500. (Ecma TC45), qui comprend des reprsentants dApple, Barclays Capital, BP, The British Library, Essilor, Intel, Microsoft, NextPage, Novell, Statoil, Toshiba, et la United States Library of Congress. States Ainsi que mentionn dans le communiqu de presse de lECMA disponible en http://www.ecma http://www.ecmainternational.org/news/PressReleases/PR_TC45_Dec2006.htm, cest lEcma qui assurera la international.org/news/PressReleases/PR_TC45_Dec2006. , maintenance et lvolution de ce standard dans le futur : The Ecma TC45 will continue to be responsible for the ongoing maintenance of the standard, and for enhancing the standard with new and innovative features while simultaneously preserving backwards compatibility . multaneously Cest un standard ouvert qui rpond en tous points la loi pour la Confiance de l'Economie Numrique du 21 juin 2004 (n 2004-575), qui stipule dans son article 4 : On entend par standard 2004 ouvert tout protocole de communication, d'interconnexion ou d'change et tout format de donnes rotocole interoprable et dont les spcifications techniques sont publiques et sans restriction d'accs ni de mise en uvre.

30 Septembre 2007

Mis au point linitiative de Microsoft, afin de rpondre notamment des lois de ce type dans diffrents pays et au niveau europen mais aussi pour assurer la prservation du patrimoine immatriel des entreprises et des tats au cours du temps, Open XML a t conu pour assurer aux temps utilisateurs une compatibilit optimale avec le patrimoine existant de documents bureautiques et viter les pertes de donnes/prsentation lors des migrations. Il est reconnu par de nombreux outils bureautiques du march, dont notamment les suites Microsoft Office 2007, 2003, XP et 2000 (un add-on en tlchargement gratuit permet en effet ces anciennes version dOffice de pouvoir lire et on crire des documents au format Open XML), mais aussi OpenOffice, NeoOffice (OO pour Macin XML), Macintosh), ou WordPerfect. Avec les formats Open XML, les documents Office sintgrent aisment des solutions mtier, et les donnes de gestion trouvent naturellement place dans les fichiers proprement dits. Les schmas personnaliss2 permettent dinclure des vocabulaires XML spcifiques dans des documents Office de des type Word ou Excel facilitant ainsi lintgration des donnes dentreprise dans lenvironnement de travail quotidien des utilisateurs. Les spcifications ouvertes dOpen XML permettent galement des applications mtier de gnrer, Open depuis un serveur (quel quen soit le systme dexploitation), des documents bureautiques destins tre consomms par des utilisateurs.

C. Lextensibilit programmatique et Office Business Applications


Bien que lextensibilit dOffice ne soit pas fondamentalement nouveau en soi, ne serait que parce , serait-ce que les macros permettent le dveloppement de solutions depuis de trs nombreuses versions, la version 2007 brille par des capacits dextensibilit accrues. De nombreuses amliorations de programmabilit ont t faites dans Office 2007. Par exemple, le uses chargement des complments est dsormais matris par lutilisateur et la suite Office a t revue de faon se comporter comme une plate-forme bien des titres. plate Bien videmment, lintgration avec .NET est plus pousse que jamais et lutilisation de Visual Studio ntgration Tools for Office donne toute la puissance de la plate-forme .NET en permettant facilement lappel de plate forme Services Web. En outre, louverture des formats en combinaison avec cette extensibilit constitue un lment ouverture combin majeur qui permet de nouveaux scnarios dutilisation dOffice en tant que frontal dapplication mtier. Mais au-del de cette extensibilit traditionnelle, Office 2007 prend une place particulire dans le del cadre du nouveau paradigme des applications composites composites. A linverse des applications traditionnelles, souvent monolithiques et cloisonnes par fonction, le les applications composites sont des applications conues pour consommer des services de manire transversale lentreprise, ces services pouvant tre rutiliss dans des contextes divers par diffrents processus de gestion.
2

Un schma XML mtier permet dindiquer dans un document des zones comme Nom de client ou montant dachat, et dchanger entre ces zones du document et le reste du systme dinformation des donnes en es conservant leur signification, et permettant de les prsenter dans des documents classiques.

30 Septembre 2007

Le schma ci-dessous illustre cette nouvelle approche centre sur lutilisateur. Celui-ci agrge en fait tte Celui ci des services fournis par diffrentes applications.

Les utilisateurs combinent les services pour construire des applications composites

Les applications fournissent un rfrentiel de services

La plate-forme fournit des types de forme composants et conteneurs

Outils pour construire et exploiter les services qui tirent parti de la plateforme

Ce phnomne se retrouve dans le grand public (avec les mashups du web 2.0) mais se dveloppe galement trs fortement dans lentreprise pour faciliter les processus de gestion. ement Ds lors, au lieu dinvestir dans des interfaces utilisateurs spcifiques, il devient intressant dinscrire les interfaces mtier au sein de celle dOffice. Ceci est rendu possible grce lvolution de possible linterface dont nous avons parl prcdemment et la possibilit de crer des rubans spcialiss. En allant au bout du raisonnement, Office 2007 devient alors un client universel dapplications mtiers et le point central de travail de lutilisateur (voir le livre blanc Office Business Applications, avail Building Composite Applications using the Microsoft platform mentionn dans les liens utiles en fin de document).

D. Les fonctions novatrices


Combines avec la possibilit dalimenter les documents avec des donnes mtiers, certaines dalimenter nouvelles fonctions ont un intrt particulirement marqu :

Les contrles de contenu dans Office Word qui permet de sparer les donnes de la les prsentation, Le formattage conditionnel dOffice Excel qui permet de mettre en exergue des valeurs dans ormattage d un tableau de bord (reprsentation visuelle, coloration, icne), icne)

30 Septembre 2007

Lintelligence mise dans linterprtation de linformation (par exemple les tableaux dont la structure est automatiquement dduite) qui permet dappliquer des modles visuels de dduite es manire globale, par exemple sur des plages de cellules Excel ou des prsentations cellule Powerpoint, SharePoint 2007 qui stoffe encore de nouvelles fonctions et dont la convergence avec ASP.NET 2.0 en matire de Webparts permet une relle intgration de type portail dapplications mtiers, Infopath 2007 qui devient dans sa deuxime version un outil puissant de formulaire avec formula galement une dimension serveur pour grer les flux, Les bibliothques de visuels qui sont trs riches ds la version livre de base, Des fonctions moins visibles par lutilisateur mais importantes telles que lamlioration de la scurit diffrents niveaux (citons par exemple lutilisation du format Open XML qui vite le ents risque de Fuzzing).

E. Compatibilit applicative avec les versions prcdentes


Malgr ces lments novateurs et pour certains assez disruptifs, notamment la rvision profonde de linterface utilisateur, Office 2007 permet la compatibilit avec les versions prcdentes. Au niveau des formats, lutilisateur dispose de loption de sauvegarder selon le format 97-2003 ou Open XML. Mais plus intressant encore, Microsoft propose un convertisseur qui permet aux utilisateurs ayant encore les anciennes versions de travailler en Open XML. Nul doute que cela facilite la transition et e milite pour un passage rapide Open XML, format privilgier par rapport un format binaire. XML, Mais ce qui nous intresse dans ce livre blanc cest surtout la compatibilit avec les applications c ilit dveloppes avec les versions antrieures dOffice. Comme toujours, il y a quelques cas aux limites dOffice avec des comportements qui peuvent lgrement diffrer, do un besoin de test, en particulier sur les trs vieilles fonctions (macros Excel 4 par exemple), mais la compatibilit est globalement bien assure. Une stratgie mise en uvre avec succs par plusieurs diteurs de logiciels consiste bien sparer pa s les fonctions et linterface utilisateur (ruban). De cette faon, le code nest pas diffrent entre les (ruban). versions 2000-2003 et 2007, sur la majeure partie de lapplication, tandis que seulement la partie 2003 tandis point dentre est spcifique la version dOffice. Ceci permet de cibler un parc htrogne sans multiplier les cots de dveloppement. Et mesure de la migration de la base installe, ces diteurs investissent de plus en plus sur des volutions qui e tirent parti du potentiel dOffice 2007 et incite les clients squiper pour bnficier de cette nt innovation. Office 2007 devient alors un levier de cration de valeur intressant pour ces diteurs de logiciels, car linvestissement effectu est modeste en regard de la valeur perue, dans la mesure o lditeur ssement peut construire sur certains atouts dOffice. Lexemple typique est la cration de tableaux de bords Excel synthtisant des donnes de lapplication de lditeur et qui tire parti de la mise en forme conditionnelle.

30 Septembre 2007

V.

Les applications relles d diteurs de logiciels utilisant Office 2007 des


A. Calypteo
Calypteo est une application mtier tirant trs largement parti de lensemble des possibilits de la pplication plate-forme Office 2007. A lorigine, se trouve la socit Cofastel, spcialise dans le domaine de la matrise des consommations et dpenses nergtiques. En particulier, ds dbut 2005, Cofastel a propos aux nergtiques collectivits locales un outil logiciel permettant dassurer la gestion et le pilotage de leurs l consommations de gaz et dlectricit et de rpondre de nombreuses proccupations pratiques, notamment de prparer et grer les appels doffres de fourniture de gaz et dlectricit dans le cadre de la libralisation de ces marchs et slectionner leurs fournisseurs. Lentreprise dispose de solides rfrences dans le domaine des collectivits locales sur ce march, comme les villes de Marseille et de Poitiers. Ce produit, initialement dvelopp en interne par Cofastel en technologie Excel, avec stockage des lopp , donnes dans des classeurs a permis dincorporer les attentes des clients, en liaison troite avec eux, au fur et mesure de lutilisation du logiciel . Cette phase de dveloppement agile a conduit gile une performance leve en termes de fonctionnalits et de rgles mtier incorpores. Afin de proposer une application apte faire face aux exigences de travail collaboratif, de transversalit et de productivit, Cofastel a lanc une toute nouvelle offre tendue dnomme tendue, Calypteo, dploye selon quatre axes principaux :

Fonctionnement en rseau avec utilisation dune base de donnes structure ; Centralisation possible des donnes sur des environnements extrieurs aux collectivits environnements locales, incluant le mode hberg, par exemple pour les communauts de commune ; hberg, communes Intgration tendue la bureautique ; Facilit dvolution pour disposer en permanence dune application en phase avec lvolution de la donne nergtique

Cette application Calypteo repose sur une architecture robuste et volutive base sur Microsoft SQL Server 2005, le .NET Framework 2.0 (avec les composants mtiers fabriqus par le produit CodeFluent), Windows Server 2003/IIS 6.0 pour le site et les services Web, et enfin Office 2007 site comme frontal volu, alternative la version basique fonctionnant sur un navigateur :

30 Septembre 2007

Concernant la partie Office 2007, Calypteo intgre de nombreuses fonctionnalits commencer par une interface graphique totalement base sur un ruban spcifique au mtier :

Des rapports Excel 2007 sont gnrs en Open XML pour les tats de synthse :

30 Septembre 2007

Des rapports Word 2007 sont gnrs selon le mme principe pour certains documents de type fiche :

En outre, de nombreuses donnes sont mises jour sous forme tabulaire grce aux listes synchronises dExcel, qui sont mises en uvre automatiquement par le producteur de CodeFluent en prenant en compte les rgles mtiers. Notons ici la combinaison possible de ces fonctionnalits possible avec la mise en forme conditionnelle qui permet de disposer dindicateurs visuels fort utiles :

30 Septembre 2007

Enfin, lenvironnement programmatique dExcel permet de mettre en uvre de nombreux menus et outils offrant des fonctionnalits propres au produit au sein mme dOffice Excel 2007, comme le propres montre un exemple ci-dessous :

Calypteo est le parfait exemple dapplication mtier conue de faon rpondre toutes les exigences actuelles des clients tout en pousant la philosophie dOffice 2007 qui devient rellement dOffice le frontal utilisateur de services applicatifs. Pour plus dinformations sur la solution Calypteo voici une prsentation vido : http://www.microsoft.com/France/Temoignages/Fiche-Temoignage-avechttp://www.microsoft.com/France/Temoignages/Fiche webcast.aspx?EID=bb003a96-cf46-46a6 46a6-8749-a8397d34ecec

30 Septembre 2007

B. Esker
Esker est un diteur reconnu internationalement dans le domaine des logiciels de communication. Son produit FlyDoc est le premier bureau de poste lectronique qui permet denvoyer courriers postaux, lettres recommandes et fax, lunit ou en nombre directement depuis un ordinateur. direc Il suffit simplement de crer son document, de choir les options denvois et FlyDoc soccupe de tout: limpression, la mise sous pli, laffranchissement et la remise en poste. Lintgration de FlyDoc Office Word 2007 est particulirement saisissante et permet daugmenter encore la productivit des utilisateurs dans leur envoi de courriers postaux et de fax. Flydoc se prsente comme une cible possible dans le menu Envoyer de Office Word 2007 :

Une fois le menu slectionn, on dispose dun ruban spcifique lapplication : ectionn,

30 Septembre 2007

Lutilisateur dispose de lassistant de publipostage classique et slectionne son fichier cible de la manire habituelle :

Loption de faire un envoi de son publipostage par le service Flydoc apparat directement dans le Flydoc volet Office au sein de lassistant qui active le service en ligne de Flydoc sur Internet :

30 Septembre 2007

Le service on demand dEsker propose alors diffrentes options de transport :

La dmonstration est simplifie dans ce livre blanc, mais le service est riche de trs nombreuses options pour lenvoi qui peuvent tre choisies directement sur le site du service sur lequell on droule les tapes sans mme quitter Office Word 2007.

Flydoc est le parfait exemple dune application cible sur un besoin utilisateur prcis et proposant cible une solution simple, productive et intgre leur environnement quotidien.

30 Septembre 2007

C. ILOG
ILOG est lun des plus grands diteurs de logiciels du march franais et le leader mondial de la LOG gestion des rgles mtiers. Son offre permet en particulier de grer des rgles mtier en les sparant s. des applications de faon permettre de grer un cycle de vie et dvolution plus rapide pour les rgles au travers dune mise jour par les utilisateurs. ILOG a fortement investi autour dOffice 2007 sur plusieurs axes. Les documents dcrivant les rgles sti mtiers dans Rules for .NET 3.0 utilisent le format Open XML et les contrles de contenu pour dcrire les mta-donnes sur les rgles, en complment des informations textuelles qui dtaillent la donnes textuelles rgle. Par ailleurs, ILOG utilise Office SharePoint 2007 pour sous-tendre le workflow dapprobation des tendre rgles. En effet, dans la mise en uvre des rgles mtiers, ce sont les gestionnaires (policy managers) qui approuvent les rgles proposes par les dveloppeurs. s Dcrivons ci-dessous un scnario dexemple : dessous

Le dveloppeur ajoute le document au portail sur lequel le workflow dapprobation a t dfini.

Lapprobateur reoit un email linvitant revoir le document.

30 Septembre 2007

Sur le portail, en fonction de son profil, lutilisateur voit les tches qui lui incombent.

Lorsquil ouvre le document, les mta-donnes des rgles sont visibles dans le volet Office et le mta donnes document est un document structur de rgle, contenant des contrles de contenu. Le gestionnaire saisit les informations des endroits prcis avec des contrles.

30 Septembre 2007

Dans lexemple complet du scnario, qui sera disponible en vido sur le site dILOG, on dcrit plusieurs tapes avec des refus et validation. On comprend aisment le principe et il nest pas le ncessaire de tout dtailler dans ce livre blanc. Contentons-nous de montrer ce qui se passe lors de Contentons nous la validation finale par le gestionnaire.

Le processus est toujours sous-tendu par SharePoint. Lcran ci-dessus montre par exemple la revue tendu xemple par un peer policy manager , car cette tape a t prvue au niveau du workflow dcrit dans SharePoint 2007.

Dans SharePoint, on peut voir le suivi de lensemble du processus et des tapes suivies. , Lintgration de Rules for .NET avec Office 2007 est un bon exemple dintgration de plusieurs lments de la suite Office : Word 2007 et Open XML ainsi que SharePoint 2007 ct serveur.

30 Septembre 2007

D. MGDIS
1. La socit

Editeur de solutions informatiques, MGDIS ddie son activit aux besoins des collectivits locales, collectivit petites et grandes, aux tablissements hospitaliers, aux organismes publics, aux ports de plaisance. Afin de se concentrer sur ces domaines de spcialit, MGDIS est spcialis dans les solutions de gestion administrative et de pilotage. Ces doma domaines sont insparables : piloter pour bien grer, connatre et simuler pour dcider. La dmarche de la socit est de fournir des solutions ouvertes et volutives, prennes par leur qualit et garantissant la libert des choix des clients. Les solutions sont dune part standardises sont pour bien rpondre aux attentes mtier des utilisateurs, dautre part elles permettent ladaptation et le paramtrage quand il faut prendre en compte les spcificits. Les choix, construits avec des composants propritaires savent intgrer la voie du logiciel libre l o cela apparat pertinent. nt Cette grande adaptabilit impose aux diffrentes solutions MGDIS gnrant des documents de ne pas dpendre de technologies utilises sur les serveurs. La possibilit de gnrer un documen document partir de fichiers XML zipps permet dune part de sadapter nimporte quelle technologie prsente sur le serveur, et dautre part de fournir des documents dont la compatibilit avec les applications futures est assure par la normalisation du format format. Cest donc naturellement que MGDIS a investi dans le support du nouveau format Open XML dOffice 2007 pour la gnration de documents Word et Excel ct serveur.
2. Le progiciel Progos

PROGOS est un progiciel offrant des solutions de gestion et de pilotage permettant dinstruire, de grer et de matriser les aides, les subventions percevoir et les oprations. Les donnes quil manipule sont exportes dans divers formats. Louverture du nouveau format de fichier dOffice 2007 fournit PROGOS un outil pour lui permettre de gnrer des documents complexes partir de plusieurs sources de donnes laide dun simple Dataset sans aucune technologie extrieure. PROGOS gnre un nouveau document laide dun modle spcialement balis dune part et dun Dataset contenant lensemble des donnes dautre part. Les balises du document Office 2007 contiennent non seulement le champ utiliser pour la fusion mais aussi la table de laquelle il doit tre extrait. Les sources de donnes peuvent ainsi tre multiples et de nature diffrente sans pour autant gner la gnration du document, seul un Dataset bien form est requis. Contrairement une fusion classique, la gnration dun document par PROGOS ne produit quun seul document. Au lieu de gnrer un nouveau document par ligne du Dataset, les champs dsignant un champ de cette ligne sont dupliqus et leur copie est remplace par la valeur du champ dans la ligne du Dataset.
3. La solution Office 2007

Sous Word 2007, les possibilits de formatage des donnes sont bien plus pousses que pour une simple fusion. Des balises permettent de dlimiter des zones de fusion lintrieur dun document.

30 Septembre 2007

Une zone dclare une table sur toute sa surface et contient un ou plusieurs champs de fusion dsignant des champs de cette dernire. Ils peuvent tre inclus dans des paragraphes de texte Ils format, des lignes dun tableau ou simplement afficher du texte brut. Lors de la gnration du document, une zone est traite comme un seul champ de fusion. Elle est copie entirement pour chacune des lignes de la table correspondante dans le Dataset, en remplaant les champs quelle contient. Sous Excel 2007, un systme de marqueurs analogue placer dans des cellules permet deffectuer des fusions multi sources. Une unique gnration de document permet ainsi dutiliser des donnes permet provenant de diffrentes sources, regroupes dans un Dataset. De simples options de formatage permettent dagencer les donnes de manire leur donner un sens, telles que lorientation du texte ou le type de donnes utilis. Les marqueurs utiliss sont des simples commandes de texte places dans des champs de fusion sous Word et dans des cellules sous Excel. Exemple :
2007-DEBUT{table} Les champs de fusion dclars ici seront rattachs la table dfinie. Cette zone de texte sera duplique pour chaque ligne du dataset. 2007-FIN{table}

Exemple de fusion dun champ numrique sous Excel :


2007-TABLE{table}-CHAMP{champ champ}-OPTIONS{nombre}

Exemple de gnration dune fiche synthse pour un tiers : ne

Marqueurs de champ Marqueurs de zone

On place des balises dans le document Word pour dfinir les zones et leurs champs.

30 Septembre 2007

Commande de gnration Informations exportes

Un lien sous Progos permet de gnrer le document pour le tiers affich.

Donnes provenant diffrentes tables

de

Duplication paragraphes

de

Duplication de lignes dun tableau Le document fusionn contient les informations du tiers, certaines zones tant dupliques lorsquune information tait reprsente plus dune fois. Les possibilits offertes par le format Open XML vont au-del de lassociation dun cha au del champ de fusion avec une ligne de Dataset. MGDIS prvoit de continuer dvelopper son support dOffice 2007 en ajoutant de nouvelles fonctions son gnrateur de documents telles que la fusion conditionnelle de champs pour permettre de contrler les donnes utilises.

30 Septembre 2007

4.

Commentaires sur la mise en uvre technique

Pour pouvoir sadapter aux solutions dj installes chez ses clients, MGDIS a dvelopp sa solution adapter de gnration de documents entirement en C# sur le Framework 2.0. Cette brique est intgre la ntirement solution Progos WEB et ne ncessite lajout daucune bibliothque supplmentaire. Il na cependant pas t possible dutiliser le SDK fourni par Microsoft (le Framework 3.0 nest pas enc encore diffus en masse sur les postes des clients de MGDIS contrairement au Framework 2.0) mais ce problme a facilement pu tre contourn grce la documentation de lOpen XML. La gnration dun document se droule en trois phases : ment

Le modle utiliser est tout dabord extrait dans un rpertoire temporaire. Il suffit pour cela st dutiliser nimporte quelle bibliothque grant le format ZIP, comme SharpZipLib qui est celle utilise par Progos WEB. La spcification de lOpen XML dfinit ensuite ce que contiennent contien les fichiers du ZIP, et modifier le contenu revient donc charger un simple fichier XML. Point important et capital dans le produit, lutilisateur final doit rester matre de ses modles, sans avoir recours un profil de type informaticien pour la mise en forme de celui-ci. m ci. La fusion dun document avec son Dataset revient ensuite de la manipulation de DOM. La spcification indique encore une fois o chercher ce qui nous intresse, en loccurrence les champs de fusion placs par lutilisateur dans le modle. Ils servent de repres pour les le paragraphes et tableaux dupliquer et fusionner. leaux Une fois les champs remplacs par leur contenu, le fichier XML modifi est crit la place de celui du modle, et le rpertoire est zipp pour obtenir le vritable fichier Open XML gnr.

Une batterie de tests Nunit est utilise pour prouver la fiabilit de la solution, et ainsi valider le code XML produit en sortie. Ceci permet de gnrer des documents de plus en plus complexes et donc mieux adaptables aux besoins des clients. Il ne reste qu apprcier le rendu lil nu pour ajuster s ventuellement les balises du modle mais ce nest ce point quun souci cosmtique. La principale difficult est forcment la manipulation du DOM. Malgr le fait quil soit spcif le ment spcifi, modle reste complexe et pas toujours adapt aux modifications que lon souhaite apporter. Les champs de fusion par exemple qui malgr leur apparence sont des objets complexes la syntaxe htrogne prvus lorigine pour afficher un champ et non servir le balises de marquage. Le remplacement de ces balises ncessite donc une analyse attentive du DOM afin premirement de trouver ce que lon recherche et deuximement de le remplacer correctement. Une fois cette comptence acquise, la manipulation du DOM reste cependant simple. Mis part cette contrainte, la gnration dun document Open XML partir dun modle ne pose aucun souci technique et ne ncessite pas le SDK (gnrer un document partir de rien serait plus complexe, mais ne nest pas notre objectif ici). Leffort peut donc tre port sur les fonctionnalits dveloppes plutt que comment elles le sont, et MGDIS compte bien profiter de cette opportunit et continuer dans cette direction.

30 Septembre 2007

E. Symtrax
Symtrax est une socit qui produit et distribue des logiciels de reporting multiplateformes et d'ouput management. Grce l'interactivit avec les utilisateurs, les logiciels Symtrax permettent la cration professionnelle de rapports pour une meilleure analyse et une prise de dcision efficac efficace. Symtrax offre une famille de produits comprenant des solutions logicielles complmentaires. Le grand avantage de ces solutions est qu'elles sont facilement intgres dans votre systme d'information existant et n'exigent pas d'investissements supplmentaires en matriels et logiciels. supplmentaires Pour en savoir plus sur Symtrax veuillez vous rendre ici : www.symtrax.com Le produit StarQuery est une solution de Business Intelligence totalement intgre Office Excel qui olution permet d'exploiter les donnes partir dun systme mtier ou dune base de donnes es relationnelles. La version Office Excel 2007 prsente une interface totalement revue avec un ruban respectant la nouvelle interface utilisateur dOffice 2007 :

L'extraction, la distribution et la mise en forme des donnes se font dans l'environnement familier de traction, Microsoft Office Excel et peuvent tre aisment automatises. L'interface Web de StarQuery permet automatis s. galement d'extraire et de prsenter les donnes via Internet. Voici le lien vers la prsentation du Intern . produit, qui est un trs bon exemple de solution horizontale venant enrichir la valeur dExcel : http://www.symtrax.fr/index.asp?file=fr/Solutions/Product/../project/business/StarQuery.htm&mer p://www.symtrax.fr/index.asp?file=fr/Solutions/Product/../project/business/StarQuery.htm&mer e=1

30 Septembre 2007

F. Medasys
Medasys est un diteur de logiciels leader dans le secteur des progiciels pour les hpitaux. Lun de pitaux. ses produits phare est le produit DxCare de gestion des dossiers patients, quipe de nombreux hpitaux en France et gre depuis longtemps des publipostages de compte-rendus mdicaux laide compte rendus de Office Word. Pour tirer parti de la nouvelle interface utilisateur dOffice 2007, Medasys a dvelopp deux nouveaux rubans qui facilitent la manipulation des donnes du progiciel directement depuis ux linterface de Office Word.

Le ruban utilisateur permet de slectionner le patient traiter depuis le dossier patient dans le systme progiciel, de slection la lettre pe et dutiliser les diffrentes donnes du dossier dans le lettre-type document trait.

De plus, un autre ruban a t cr pour assurer le paramtrage des courriers par les administrateurs de lapplication. Medasys est un bon exemple dditeur qui applique la stratgie de compatibilit voque plus haut stratgie ce livre blanc, en investissant en premier lieu dans une nouvelle interface utilisateur spcifique Office 2007. Cette stratgie permet la compatibilit immdiate avec les diffrentes extensions dj crites pour Office Word au fil des annes, malgr un investissement important. fice Pour autant, Medasys a identifi de nombreuses fonctions intressantes dans Office Word 2007 qui vont leur permettre daller plus loin dans les versions actuellement en cours de dveloppement dveloppement. Lutilisation dOpen XML et des contrles de contenu, comme illustr dans lun des prototypes, est lune de ces directions, sur laquelle Medasys est galement en train de travailler pour ses logiciels de radiologie.

30 Septembre 2007

G. SoftFluent
En tant quauteurs de ce livre blanc, et ayant nous-mmes beaucoup investi sur Office 2007, nous nous mmes nous devons bien videmment de mentionner le support dOffice 2007 dans notre offre produit. Rappelons que SoftFluent est une socit spcialise en gnie logiciel, la pointe dans l domaine de le l'industrialisation des applications de gestion sur lensemble de la plate-forme de dveloppement de plate forme Microsoft. SoftFluent dite le produit CodeFluent, une usine logicielle qui permet de raliser des composants logiciels prts l'emploi partir dune technique de modlisation simple et pragmatique. Cette usine tir sintgre avec Office 2007 de plusieurs faons.
1. Format des fichiers modles de CodeFluent

Tout dabord, notons que la dmarche de CodeFluent part dune modlisation du mtier par une description des entits, de leurs proprits et de leurs relations de diffrentes natures. Ce modle est dcrit dans un flux XML qui peut tre rparti dans plusieurs fichiers, mais ces fichiers sont plusieurs consolidables en une archive qui implmente le format Open XML. Le format .CFX des fichiers de CodeFluent nest donc rien dautre quune archive respectant le format Open XML et dont les parts sont les lments du modle CodeFluent. Cest ce fichier qui peut tre envoy au service en ligne http://www.codefluent.com , un service gratuit de gnration de composants mtier la demande.
2. Support des listes Office Excel

Tout dabord, CodeFluent est la premire offre de gnie logiciel avoir investi fortement sur deFluent lutilisation dOffice Excel comme frontal applicatif. CodeFluent a fait le choix ds sa version 1.0 de proposer la fabrication de Services Web ddis pour la saisie laide de listes synchronises Excel. En effet, depuis Office Excel 2003, lutilisateur avait la possibilit de synchroniser des donnes de type liste avec une source de donnes fournie par un service web. Cette fonctionnalit a t web. introduite en particulier avec SharePoint et ses listes personnalises, qui fournissent directement une harePoint possibilit dexport vers les listes Excel. La synchronisation depuis Office Excel 2003 est possible grce aux Internet Query Files (fichier extension : iqy), permettant la lecture et lcriture en relation directe avec la source de donnes. Cependant, la synchronisation en criture nest plus possible par dfaut avec Office Excel 2007. En effet, cette fonction a t inhibe par dfaut (mais Microsoft a sorti un complment pour le faire faire, voir le lien en fin de document). La possibilit de saisir directement depuis Office Excel en vue dune mise jour apportant une relle a valeur aux clients que nous avons rencontrs (saisie de masse, application de formules de calcul, saisie rplication de donnes par glisser tirer,), nous avons automatis la ractivation de cette n glisser-tirer,), fonctionnalit par un composant gratuit Wss Excel 2007 Tables synchronizer fourni sur notre site (voir lien vers larticle en fin de livre blanc).

30 Septembre 2007

Pour les dveloppeurs, il peut tre intressant de comprendre comment les listes Excel peuvent tre utilises pour fournir des solutions de collaboration autour de donnes dapplications. Cest ce que nous prsentons dans cette partie, au travers de ce que nous mettons en uvre dans notre usine logicielle CodeFluent. CodeFluent permet de raliser des applications de gestion multicouches, conformes au modle SOA, partir dune simple description abstraite dun modle mtier. CodeFluent est conu pour gnrer des applications web, client-riche, mobiles ou centres autour dOffice, et en particulier Excel. Dans riche, ce dernier schma souvent utilis en combinaison avec dautres interfaces utilisateur Office Excel devient le frontal de manipulation des donnes au travers de listes synchronisables. sy Considrons par exemple une application de gestion de vhicules en location. Ce modle exemple CarRental comprend des entits telles que des voitures, des clients, des agences, des contrats Et lapplication expose ces entits en liste sous forme de vues similaires aux listes SharePoint Ces vues SharePoint. peuvent tre rendues accessibles au travers dun site Web avec des liens vers des fichiers .IQY qui provoque un fonctionnement similaire celui dune liste SharePoint.

Les listes fabriques par CodeFluent vous permettent donc dexporter vos donnes vers une feuille deFluent dexporter de calcul et saisir des donnes de la mme faon que pour une liste SharePoint. Ceci vous permet de mettre en uvre les mmes scnarios (mode dconnect, saisie de masse, calculs dans la feuille, tableau crois dynamique construit sur la liste) mais en utilisant un lien vers une base de donnes applicative et les couches mtier associs, incluant la mise en uvre des rgles de gestion et la localisation.

30 Septembre 2007

3.

Gnration de rapports Open XML

CodeFluent dispose dun moteur de Template intgr. Celui-ci dans ltat actuel permet : deFluent ci 1. 2. 3. 4. La gnration de code pour tout type de langage bas sur du texte, La mise en cache des templates pour une meilleure performance de gnration, Un moteur de template 100% rutilisable, Le support exclusif du format Microsoft RTF (permet de crer des modles de document directement sous Office Word, approche trs apprcie des utilisateurs).

Il est prvu une mise jour prochaine du moteur de template pour quil prenne en charge la gnration de document Open XML.
4. Gnration dapplications OBA

Enfin, dans la mesure o CodeFluent gnre dj les services web applicatifs ct serveur, et permet la fabrication dinterface utilisateurs de diffrents type, avec une description remonte un niveau dabstraction plus lev, il est prvu dans la roadmap de gnrer des interfaces Office 2007 (Word, Excel, PowerPoint). Lutilisateur disposera ainsi de rubans par domaine avec les diffrentes fonctions qui activer activeront les services web applicatifs. CodeFluent devrait donc constituer un acclrateur dapplications de type OBA.

En conclusion, SoftFluent en tant que socit investit trs fortement sur Office 2007 comme plate plateforme de dveloppement et lment diffrentiateur des autres offres de gnie logiciel plus diffrentiateur classiques , qui jouent plutt la portabilit que la valeur ajoute maximale. Cest un lment de plus qui dmontre lvolution dOffice 2007 vers le positionnement en plate plateforme de dveloppement.

H. Autres diteurs
De nombreux autres diteurs travaillent en ce moment sur des dveloppements Office 2007. Nous ferons probablement une mise jour de ce livre blanc afin de vous donner des exemples additionnels dici la fin de lt 2007. Citons quelques exemples :

Archimed, diteur dune solution de gestion de collection pour les muses, qui intgre une fabrication automatique de prsentations Powerpoint, BlueKiwi, qui dite un produit de gestion de blogs en entreprise, en cours dintgration avec Office Word 2007 et SharePoint, 7 Micro-Concept, qui dite une solution de tlphonie intgre Microsoft Outlook, Concept, Sylogis, qui dite des logiciels pour les collectivits locales et dveloppe un volet assez riche intgr Office Word 2007.

30 Septembre 2007

VI. Les prototypes dvelopps par SoftFluent


Lensemble des prototypes dcrits dans cette partie sont disponibles avec des documentations compltes et codes sources sur le site de SoftFluent, ladresse disponible en toute fin de document.

A. La personnalisation dOffice 2007


Comme expos plus haut, linterface utilisateur a t totalement revue sur la base de lutilisation de s rubans. Ce choix fondamental impose aux diteurs de complments Office une mise jour complte de linterface graphique de leurs produits pour une intgration optimale. Nous allons donc faire le . tour ensemble des nouvelles possibilits quoffre cette interface graphique, et surtout de la manire de les mettre en place grce un prototype de complment Office : MyAddIn.
1. Cration dun ruban

Le complment MyAddIn ajoute longlet MyTab Office Excel 2007. La personnalisation du ruban ute se fait dans le fichier Ribbon.xml contenu dans le projet MyAddIn. Pour ajouter un onglet il suffit dajouter un lment tab dans le nud tabs, comme ceci :
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui http://schemas.microsoft.com/office/2006/01/customui http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad"> <ribbon> <tabs> <tab id="MyTab" label label="MyTab"> () </tab> </tabs> </ribbon> </customUI>

Il est parfaitement possible de sintgrer un onglet dj existant, bien que ce comportement est contraire aux directives de Microsoft car lutilisateur pourrait alors difficilement diffrencier ce qui provient dOffice ou des complments. Pour faire ceci, il suffit dutiliser un lidentifiant dun onglet vient ceci, Office au lieu de dfinir le notre, et dutiliser lattribut idMso au lieu did :
<tabs> <tab idMso="TabHome"> > <group id="TestGroup label="TestGroup"> Group" <button id="TestButton label="TestButton"/> TestButton" </group> </tab> </tabs>

Enfin si lon veut que seul notre ruban apparaisse, il suffit dajouter lattribut startFromScratch llment ribbon tel que : <ribbon startFromScratch="true"> ribbon Pour plus de dtail sur les lments possibles et leurs attributs, veuillez-vous reporter la veuillez vous documentation mise disposition par Microsoft (http://msdn2.microsoft.com/en (http://msdn2.microsoft.com/enus/library/aa338199.aspx).

30 Septembre 2007

2.

Prsentation de lensemble des contrles disponible e

Voici une description des contrles disponibles dans Office 2007 (lensemble de ces contrles sont reprsents dans le prototype : pour savoir le type du contrle utilis, garder votre souris au au-dessus, et le type apparatra dans laide) : Button : un bouton ToggleButton : un bouton que lon peut presser et qui reste enfonc. Correspond au smiley dans le complment. Box : une bote de contrles pouvant tre verticale ou horizontale. Ce contrle correspond aux deux colonnes de couleurs dans le complment. nes Separator : un sparateur. SplitButton : un bouton avec un menu droulant contenant dautres boutons ou menus. ButtonGroup : un groupement de boutons horizontal. LabelControl : du texte. CheckBox : une case cocher. EditBox : une bote de saisie. ComboBox : une bote de saisie et liste mais ne contenant que des contrles item. Item : un lment dune liste. DropDown : une liste contenant des lments et/ou des boutons. Menu : un menu. MenuSeparator : un sparateur dans un menu. DynamicMenu : un menu rempli dynamiquement. Gallery : une galerie. La galerie est la grande nouveaut dans les contrles. Cest un menu volu, cest--dire que la galerie tout comme le menu dire contient dautres contrles, mais contrairement au menu o tout ces contrles sont dans une colonne, la galerie a de multiples colonnes.
3. Utilisation des astuces

Les astuces (traduction de tips ) sont des panneaux daide qui apparaissent lorsque lutilisateur garde son curseur plus dune seconde immobile au-dessus dun contrle (lquivalent dun tooltip au dessus en .NET). Il est trs facile den dfinir pour ses contrles puisquils constituent deux attributs ). ajouter dans le nud XML de llment : screentip et supertip. Screentip correspond au titre de p laide et supertip son contenu. Exemple :
<button id="monBouton" label label="Bouton" screentip="Bouton" supertip supertip="Ceci est un bouton."/>

N.B. : Il est recommand de mettre [nom du complment] : [texte du screentip] dans les screentips de manire ce que les utilisateurs savent que cest une fonctionnalit du complment et non sateurs dOffice 2007.

30 Septembre 2007

Dans le complment MyAddIn, vous trouverez des informations sur les contrles utiliss dans ces astuces.
4. Utilisation de lexistant

En gnral, partir du moment o lon utilise une ressource dOffice 2007, lattribut utiliser est du utilise type : [nom de lattribut]Mso = nom de la commande . Comme nous lavons vu tout lheure, pour utiliser un onglet existant le XML est :
<tab idMso="TabHome">

Il en va de mme pour utiliser une image :


<button id="Box.Button1" imageMso="AppointmentColor0"> imageMso

Ou encore une fonctionnalit, commande ou macro : ,


<button idMso="FileNew" size size="large">

Reste maintenant connatre les identifiants des images, commandes, ou autres fonctionnalits existant dans Office 2007. Vous trouverez dans ce lien la liste de tous les imageMso : http://www.sunflowerhead.com/msimages/Office2007IconsGallery.zip Pour les identifiants des commandes il suffit daller dans le menu Office > Option Word > Personnalisation. Une fois dans ce menu, vous aurez la liste de toutes les commandes disponible disponibles dans Office 2007. Si vous positionnez votre souris sur une commande plus dune seconde, une a astuce va apparatre avec entre parenthse lidentifiant de la commande. parenthses Pour les onglets, cest le nom anglais de longlet auquel on ajoute le prfixe Tab tel que pour personnaliser longlet Accueil , qui est longlet Home en anglais, ce sera TabHome .

30 Septembre 2007

5.

Ajout de ses propres images

Contrairement aux versions prcdentes o toutes les ressources dOffice et de ses plug plug-ins taient charges au dmarrage, elles sont maintenant charges uniquement lorsque Office 2007 en a beso besoin, permettant ainsi de conserver un temps de chargement identique et indpendant du n nombre de complments installs. Pour cela, il a t implment un systme de callback . Cest--dire que vous devrez spcifier une dire mthode qui sera appele au moment o Office aura besoin dafficher votre bouton (ou menu, ou r galerie, etc.) pour charger votre ressource. Voici concrtement quoi cela ressemble :
<button id="buttonId" label label="Bouton" getImage="GetImage"/>

Dans lexemple ci-dessus, Office Excel va appeler la mthode GetImage lorsquil aura besoin dafficher limage du bouton. Il faut maintenant du ct de votre code implmenter la mthode qui va rcuprer votre ressource correspondant ce bouton :
public stdole.IPictureDisp GetImage(Office. GetImage(Office.IRibbonControl control) { stdole.IPictureDisp pictureDisp = null; switch (control.Id) { case "Button": pictureDisp = ImageConverter.Convert(GetResourceBitmap("cards.png")); ImageConverter.Convert(GetResourceBitmap( break; default: break; } return pictureDisp; }

IPictureDisp est linterface utilise par Office pour les images. La classe AxHost contient une

mthode qui permet de convertir System.Drawing.Image en IPictureDisp, mais cette mthode est protge. Il faut donc obligatoirement hriter de cette classe pour pouvoir lutiliser, do la classe ImageConverter contenue dans le projet MyAddIn : contenu

internal class ImageConverter : System.Windows.Forms.AxHost { private ImageConverter() : base(null) { } public static stdole.IPictureDisp Convert(System.Drawing.Image image) IPictureDisp { return (stdole.IPictureDisp IPictureDisp)AxHost.GetIPictureDispFromPicture(image); .GetIPictureDispFromPicture(image); } }

30 Septembre 2007

6.

Gestion des vnements

Tout comme pour les images, les vnements se grent grce un systme de callback. Chaque vnement possible pour un contrle correspond un attribut de ce contrle (tel que onAction, getPressed, getVisible, etc.) et il suffit daffecter lattribut le nom de la callback voulue. Pour connatre lensemble des signatures des callbacks ainsi que des attributs possibles, veuillez vous reporter la documentation fournie par Microsoft : http://msdn2.microsoft.com/en http://msdn2.microsoft.com/enus/library/aa338199.aspx. Voici par exemple comment grer lvnement dun clic sur un bouton :
<button id="monBouton" label label="Bouton" tag="Exemple" onAction="OnAction OnAction"/>

Et maintenant dans mon code, il me faut implmenter la mthode OnAction :


public void OnAction(Office. OnAction(Office.IRibbonControl control) { MessageBox.Show(control.Tag, control.Id, .Show(control.Tag, MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBoxButtons .Information); }

Ce code mis en action aura pour effet dafficher une bote de message avec lidentifiant du contrle en titre, et la chane affecte lattribut tag en texte.
7. Peuplement dynamique de menus

On retrouve le mme principe pour le peuplement dynamique du menu. Parmi les attributs du menu n dynamique, il est obligatoire de spcifier lattribut getContent, qui va permettre de rcuprer le , contenu du menu. La mthode que prend getContent prend un paramtre un contrle du ruban et retourne une chane XML dcrivant le contenu du menu. Voici un exemple :
<dynamicMenu id="DynamicMenu DynamicMenu" getContent="GetDynamicMenuContent /> GetDynamicMenuContent" label="My My Dynamic Menu" Menu

public string GetDynamicMenuContent(Office. GetDynamicMenuContent(Office.IRibbonControl control) { Random random = new Random(); int nbMenus = random.Next(1, 8); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("<menu xmlns=\"http://schemas.microsoft.com/office/2006/01/customui "http://schemas.microsoft.com/office/2006/01/customui\">"); for (int i = 1; i <= nbMenus; i++) { "<button id= "DynamicButton{0}\" stringBuilder.AppendFormat("<button id=\"DynamicButton{0}\" label=\"DynamicButton{0} tag=\"Ceci est un bouton gnr dynamiquement dynamiquement\" onAction=\"OnAction\" />", i); , } stringBuilder.AppendLine("</menu>" "</menu>"); return stringBuilder.ToString(); }

Le code gnr aura pour effet de peupler dynamiquement mon menu avec un nombre alatoire de n boutons.

30 Septembre 2007

8.

Cration de volet Office

Un volet Office est en ralit un UserControl C#. Il suffit donc de crer son propre contrle en hritant de la classe .NET UserControl, puis dajouter son contrle dans la collection de volet (le volets volet est la traduction de langlais de task pane ). Concrtement :
public partial class ThisAddIn { internal CustomTaskPane myTaskPane; private void ThisAddIn_Startup( ThisAddIn_Startup(object sender, System.EventArgs e) EventArgs { ClockControl clockControl = new ClockControl(); myTaskPane = this.CustomTaskPanes.Add(clockControl, "Horloge" .CustomTaskPanes.Add(clockControl, "Horloge"); myTaskPane.Visible = false; myTaskPane.VisibleChanged += new EventHandler(myTaskPane_VisibleChanged); (myTaskPane_VisibleChanged); } }

Lutilisateur, dans Office 2007, doit pouvoir contrler la visibilit de tout ce qui saffiche dans son environnement depuis le ruban. Nous allons par exemple contrler la visibilit de ce volet via un visibilit toggleButton dans le ruban : quand le bouton est enfonc, le volet saffiche, et vice versa. Pour faire cela, il suffit de lier la visibilit du volet un vnement clic dun contrle. Dans la , fonction de callback de lvnement clic , il suffira de changer la visibilit du volet en mettant la ment proprit Visible vrai ou faux. Vous trouverez dans MyAddIn la mise en place de ce systme entre un toggleButton et le volet.
9. Autres personnalisations

Bien que peu ou pas document, il est possible de personnaliser dautres lments de document, lenvironnement Office 2007 tel que le menu Office, ou encore surcharger des commandes. Malgr le fait que ce ne soit pas encourag par Microsoft, il est parfois bien pratique et mme ncessa ncessaire davoir recours ces personnalisations. Ces personnalisations ont aussi lieu dans le fichier XML de description de linterface, la diffrence tant quau lieu dtre entre llment tabs elles ont lieu entre les balises officeMenu pour le menu Office, et les balises commands pour personnaliser les commandes. Pour insrer un bouton SoftFluent dans le menu Office, et juste aprs le bouton Sauvegarder , voici quoi va ressembler la description XML :
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" http://schemas.microsoft.com/office/2006/01/customui onLoad="OnLoad"> <ribbon> <officeMenu> <button id="SoftFluentSave SoftFluentSave" label="Bouton Bouton SoftFluent" SoftFluent insertAfterMso="FileSave" onAction onAction="OnAction"/> </officeMenu> </ribbon> </customUI>

30 Septembre 2007

Vous pouvez galement modifier le contenu du menu Office :


<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui http://schemas.microsoft.com/office/2006/01/customui http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad"> <ribbon> <officeMenu> <button idMso="FileSave visible="0"/> FileSave" <button id="MySave MySave" label="MySave" imageMso="Save" imageMso insertAfterMso="FileSave" visible visible="1"/> </officeMenu> </ribbon> </customUI>

Cela aura donc pour effet de cacher le vrai bouton Sauvegarder , pour nafficher que le n ntre. Nous retrouvons les mmes principes pour la surcharge de commandes :
<commands> <command idMso="Open" onAction="MyOpen"/> " <command idMso="Save" onAction="MySave"/> " <command idMso="SaveAs onAction="MySaveAs"/> SaveAs" </commands>

Nous allons donc surcharger les commandes Ouvrir , Sauvegarder , Sauvegarder sous , pour que lors de lutilisation de celles celles-ci, elles appellent nos callback MyOpen , MySave , MySaveAs .
10. Dploiement

Jusqu rcemment il y avait trs peu dinformations sur la manire de dployer son complment. Depuis, Microsoft a publi un article en deux parties trs complet sur la manire de dployer un soft complment Office avec les VSTO SE : 1. http://msdn2.microsoft.com/en http://msdn2.microsoft.com/en-us/library/bb332051.aspx 2. http://msdn2.microsoft.com/en http://msdn2.microsoft.com/en-us/library/bb332052.aspx Nous allons quand mme voir ensemble succinctement les grandes lignes du dploiement. Pour dployer son complment il faut : 1. Vrifier les pr-requis a. Installer le Framework 2.0 sil nest pas install. b. Installer la VSTO Runtime si elle nest pas installe. c. Installer les PIAs Office 2007 si elles ne sont pas installes. 2. Copier les fichiers 3. Mettre en place les valeurs dans les registres 4. Mettre en place les scurits lace a. Le complment et toutes ses dlls doivent tre signs. b. Configurer sur la machine cliente le Code Access Security Policy (CasPol) pour que le complment soit excuter en FullTrust (cela est fait linstallation dans le projet SetSecurity du complment MyAddIn, mais cela peut aussi tre aprs fait la main aprs linstallation, dans la configuration du Framework 2.0). Le dtail de toutes ces tapes se trouve dans larticle mis en lien ci-avant, et tout ceci est fait dans le ci avant, projet MyAddinSetup du prototype MyAddIn. jet

30 Septembre 2007

B. Laccs aux donnes mtier par Web Service


Le prototype BookStoreSample est un complment pour Office Excel 2007, ajoutant un volet Office qui consomme un service web publi sur le site de SoftFluent effectuant laccs une base de donnes. Avec Office 2007, Microsoft transforme une suite dapplications indpendantes en un vritable systme dapplications frontales consommant le systme dinformation. Ds la version 2003 d'Office, Microsoft amorait un virage pour introduire la notion de serveur dans le concept de la suite ur bureautique. Aujourdhui, le virage devient une ralit aux applications multiples dont les bnfices se traduisent par des gains en organisation, en collaboration et en productivit. En toffant sa suite toffa bureautique de serveurs et d'un moteur de workflow, Microsoft propulse en effet Office Word Excel Word, ou encore Powerpoint au statut d'interface cliente pour l'ensemble des applications bureautiques mais galement pour toutes les sources de donnes prsentes dans le systme d'information. donnes Ces sources de donnes peuvent tre aussi bien des sources standards proposes par Microsoft (SharePoint en est lillustration parfaite), que votre propre source de donne et ainsi de disposer doutils puissants pour traiter vos donnes ; sans pour autant les avoir dvelopps vos frais. our Comme nous lavons vu au cours du chapitre prcdent, linterface humaine de lenvironnement Office 2007 est presque entirement personnalisable, mais surtout, au-del doffrir une simple au del un personnalisation graphique, cest tout lenvironnement .NET qui est disponible dans Office 2007. En . rsum, si lon combine leffort fait par Microsoft pour faire des applications Office de vritables clients, et le fait que lon puisse disposer de la puissance du Framework .NET, lon se rend vite d , compte quOffice est bien plus quune suite bureautique, mais devient une vritable plateforme de dveloppement. Pour illustrer ce point, SoftFluent a dvelopp un complment Excel qui a pour but dutilis Office dutiliser Excel 2007 comme client frontal, pour consommer des donnes issues dun Web Service, lui lui-mme attaquant une base SQL Server 2005. Nous sommes volontairement rest dans des technologies Microsoft, pour illustrer une utilisation complte du Framework mais il est tout fait possible de Framework consommer un service web attaquant une base Oracle ou un complment dialoguant avec u un serveur Java, ou nimporte quelle autre source de donne. elle A des fins defficacit, ce service web a t dvelopp en utilisant lusine logicielle CodeFluent lusine CodeFluent. CodeFluent permet de fabriquer des composants SOA cl en main respectant larchitecture SOA de manire automatise partir dune simple description dun modle. Dans lexemple modle. BookStoreSample , nous nous sommes servi de CodeFluent pour gnrer la base de donne SQL Server 2005, les classes mtiers correspondantes, ainsi que le service web, chaque couche interagissant en parfaite adquation avec la couche sous-jacente. En rsultat lensemble des sous jacente. fonctionnalits ont t mises en place un cot trs faible, permettant ainsi aux dveloppeurs de se ses focaliser sur limplmentation de linterface graphique ou de rgles plus spcifiques. Enfin, linterface . graphique a bnficie dun cot de dveloppement trs faible tout en proposant des fonctionnalits proposant avances grce lutilisation dOffice Excel comme client frontal. Office

30 Septembre 2007

1.

Pr-requis

Avant de pouvoir utiliser le complment BookStoreSample, il faut bien videmment que vo ayez vous Office 2007 install sur votre poste, et plus particulirement Excel. De plus, il faut les Office 2007 particul Primary Interop Assemblies . Elles sont normalement installes par dfaut linstallation dOffice 2007, mais si pour des raisons obscures elles ne sont pas installes sur le vtre, elles peuvent tre rcupres ici : http://www.microsoft.com/downloads/details.aspx?familyid=59daebaa http://www.microsoft.com/downloads/details.aspx?familyid=59daebaa-bed4-4282a28c-b864d8bfa513&displaylang=en b864d8bfa513&displaylang=en Le complment est BookStoreSample est un complment pour Excel 2007, dvelopp avec les Visual ment Studio Tools for Office Second Edition (VSTO SE), ce qui fait que vous aurez besoin dinstaller ceux ceux-ci avant de pouvoir compiler les sources. Les VSTO SE sont disponible disponibles ici : http://www.microsoft.com/downloads/details.aspx?familyid=5e86cab3-6fd6-4955-b979 http://www.microsoft.com/downloads/details.aspx?familyid=5e86cab3 b979e1676db6b3cb&displaylang=en )
2. Utilisation a) Utilisation du complment ilisation

Lexemple tel quil vous est livr contient deux parties : le code source, et un installeur. Linstalleur va dployer le binaire sur votre machine et il nest pas ncessaire davoir Visual Studio 2005 dinstall pour utiliser le complment. Une fois le complment install, il vous suffit de lancer Excel 2007, et vous verrez quun nouvel onglet lextrme droite du ruban est apparu, ainsi quun nouveau menu dans le menu Office. Le complment permet dinterroger un service web dune librairie virtuelle. Via un volet Office vous pourrez obtenir par exemple la liste des livres proposs par cette librairie.
b) Utilisation de la solution

La solution du complment BookStoreSample est compose de six projets :


BookStoreSample.Design : contenan les fichiers XML ncessaires la gnration par contenant ration CodeFluent des sources, BookStoreSample.Model : contenant les sources C# gnres par CodeFluent, BookStoreSample.WebService : contenant les sources du Web Service gnr par CodeFluent, BookStoreSample.Excel : projet correspondant au complment proprement dit, cest dans oprement celui-ci quest contenu le ruban et autres fonctionnalits du complment, ci BookStoreSample : le projet pour le msi SetSecurity : un autre projet ncessaire au dploiement dont nous verrons lutilit plus tard t dans ce document.

3.

Points dintrts particuliers

Ce prototype reprend beaucoup de points dintrts du prcdent. Nous ne redveloppons pas ces points ici, mme sils sont dtaills dans la documentation du prototype (car chaque prototype peut prototype tre vu indpendamment des autres).

30 Septembre 2007

a) Cration du service Web

Comme expos plus haut, nous allons crer le service web de gestion des donnes avec CodeFluent. Pour cela il faut modliser les entits manipules et leur relation. Cela se fait trs simplement en relation. utilisant une syntaxe XML dcrivant directement les entits mtiers que notre application va utiliser (se rfrer la documentation de CodeFluent disponible en ligne pour en savoir plus) :
<Author> <Id/> <Name/> <Books typeName="BookCollection relationPropertyName="Authors BookCollection" Authors"/> </Author> <Book> <Id/> <Name /> <Authors typeName="AuthorCollection relationPropertyName=" AuthorCollection" "Books"/> <Editor typeName="Editor /> Editor" <BookStore typeName=" "BookStore"/> </Book> <Editor> <Id /> <Name /> <Books typeName="BookCollection BookCollection"/> </Editor> <BookStore> <Id/> <Name/> <Books typeName="BookCollection BookCollection"/> </BookStore>

rs Ces entits vont devenir, aprs production, nos tables et nos objets. Lensemble des lments ncessaires cette tape sont regroups dans le projet BookStoreSample.Design. Le fichier principal est le fichier nomm BookStoreSample.xml qui contient la description des entits et importe deux sous-fichiers BookStoreSample.Instances.xml, et BookStoreSample.Producers.xml. reSample.Instances.xml
<cf:import path="{0}.Producers.xml /> {0}.Producers.xml" <cf:import path="{0}.Instances.xml /> {0}.Instances.xml" Note : {0} prcise CodeFluent dutiliser le namespace par dfaut.

BookStoreSample.Producers.xml contient une description des producteurs dsirs par lutilisateur.


<cf:producer typeName="CodeFluent.Producers.SqlServer.SqlServerProducer, "CodeFluent.Producers.SqlServer.SqlServerProducer, CodeFluent.Producers.SqlServer" CodeFluent.Producers.SqlServer /> <cf:producer typeName="CodeFluent.Producers.CodeDom.CodeDomProducer, typeName CodeFluent.Producers.CodeDom.CodeDomProducer, CodeFluent.Producers.CodeDom"/> CodeFluent.Producers.CodeDom <cf:producer typeName="CodeFluent.Producers.CodeDom.UI.Web.WebServiceProducer, CodeFluent.Producers.CodeDom.UI.Web.WebServiceProducer, CodeFluent.Producers.CodeDom" CodeFluent.Producers.CodeDom />

Dans notre cas nous navons que trois producteurs : le producteur de notre base SQL Server, le producteur de notre code C# et enfin le producteur de notre Web Service.

30 Septembre 2007

Le fichier BookStoreSample.Instances.xml est optionnel, il sert instancier par dfaut nos tables ou el, objets de manire avoir des donnes et une application utilisable directement aprs sa gnra gnration. Une fois lapplication modlise puis nos producteurs spcifis et configurs, il suffit de lancer CodeFluent avec le modle en paramtre et il va nous produire lensemble de lapplication. Les composants utiliss dans la solution BookStoreSample ont t gnrs 100% par CodeFluent et aucune modification na t ncessaire pour pouvoir consommer les services web produits depuis notre complment Excel 2007. Le service web est dploy sur notre serveur ladresse suivante (voir mot de passe dans le t tableau des liens utiles en fin de livre blanc) :

http://office.softfluent.com/BookStoreSample.WebService/fr-FR/default.asmx http://office.softfluent.com/BookStoreSample.WebService/fr FR/default.asmx

b) La consommation du service Web depuis Excel

La consommation du service Web dans le complment est chose trs aise puisque ce nest ni plus ni moins que du .Net, avec la diffrence nanmoins quil est possible insrer les donnes sortantes o nous le dsirons dans lenvironnement Office.

Dans lexemple BookStoreSample nous permettons depuis s un volet Office, de lister les livres dun auteur, les livres dune maison ddition, lauteur partir dun livre et enfin tous les livres disponibles dans une librairie. Le complment interroge un service Web, et affiche les e donnes dans la premire colonne de la feuille de calcule courante. Pour consommer le service Web dans le complment, il ny a rien dextraordinaire faire, la procdure effectuer est absolument identique celle que lon appliquer appliquerait dans une application .Net. La mthode la plus simple tant dajouter une rfrence Web son projet, ce qui va faire que Visual Studio 2005 va automatiquement gnrer les classes proxy correspondantes. Puis il vous suffira dutiliser ces classes comme nimporte quelle autre classe de votre application. Cest cette mthode que nous avons utilis dans ce prototype, je vous invite donc consulter les sources pour avoir un exemple concret de consommation dun service Web, et/ou bien sur la MSDN pour plus dinformation sur les services Web en gnral. Une fois les donnes rcupres, il nous manque donc la dernire brique qui est donc leur affichage. Pour cela rien de nouveau, lon utilise toujours lautomation pour manipuler les feuilles de calculs dExcel 2007.

30 Septembre 2007

Voici un bout de code issu du prototype qui illustre la rcupration des donnes depuis un service Web et leur affichage dans la premire colonne de la feuille de calcul courante :
Book[] bookResults = _bookStoreSampleWebService.BookCollectionLoadByBookStore(bookStore); [] _bookStoreSampleWebService.BookCollectionLoadByBookStore(bookStore); MSExcel.Workbook workbook = (MSExcel. (MSExcel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook; .ThisAddIn.Application.ActiveWorkbook; MSExcel.Worksheet sheet = (MSExcel. (MSExcel.Worksheet)workbook.ActiveSheet; sheet.Cells.Clear(); int rowIndex = 1; foreach (Book book in bookResults) { sheet.Cells[rowIndex++, 1] = book.Name; }

Ce code renseigne les cellules de la feuille Excel avec le rsultat suivant :

30 Septembre 2007

c)

Conclusion

Nous avons vu dans ce prototype comment personnaliser Excel 2007 de faon lutiliser comme un personnalis client frontal dune source de donnes. La source de donnes peut aussi bien tre un serveur donnes. SharePoint, que notre propre source comme cest ici notre cas avec notre Web Service attaquant une base de donne SQL Server 2005, ou tout autre service Web dvelopp avec une quelconque dvelopp technologie. Nous avons galement vu succinctement au passage comment industrialiser le processus de production de code avec CodeFluent de manire pouvoir concentrer les efforts sur la valeur ajoute de lapplication : interface utilisateur et rgles mtiers (mme si dans ce prototype, nous utilisateur nillustrons pas la mise en uvre de rgles au-del des rgles de structure portes par le modle au del CodeFluent). Ce prototype illustre ainsi parfaitement largument de rduction des cots mis en avant en a introduction de ce livre blanc. Les trois applications phares dOffice 2007 peuvent dsormais tre utilises comme des interfaces clientes universelles, ce qui prsente de nombreux avantages tel que la suppression du temps de familiarisation avec une nouvelle interface graphique pour lutilisateur, une ou encore un faible cot de dveloppement de clients riches en fonctionnalits pour les diteurs logiciels.

30 Septembre 2007

C. La sparation donnes/prsentation dans un document Word 2007 prsentation


LOpen XML est la dsignation dusage dun standard ouvert de lECMA, originellement introduit par usage Microsoft, dfinissant un format de donnes pour les documents dapplications bureautiques tels que ceux dOffice Word 2007, dOffice Excel 2007 et dOffice PowerPoint 2007. Ce format est intgralement structur en XML et le tout est compress sous forme dune archive ZIP. ntgralement Larrive de ce nouveau format est accompagne, entre autres de deux nouvelles fonctionnalits : le nouvelles Data Store et les Contrles de Contenus (de langlais Content Controls ). Du fait que les nouveaux formats de fichier Office (docx, xlsx, pptx) sont en ralit des archives ZIP, il est maintenant possible dembarquer dans larchive des documents XML dfinis par lutilisateur, et dans la quantit voulu par celui-ci. Ce concept est nomm Data Store et permet donc de stocker nos donnes dans nos propres XML, et surtout, ceux-ci sont bien spars de toutes informations ceux ci parasites telles que des informations de prsentation. De mme, au niveau de la couche de prsentation, la nouvelle fonctionnalit des contrles de prsentation, contenus pour Office Word, nous permet justement de spcifier des zones dans notre document , Word, sur lesquelles on pourra lier des donnes. Il serait maintenant lgitime de se demander : Et si on alliait les deux ? Et si lon liait des zones de gitime i saisies des nuds prcis de mon fichier XML, lui-mme contenu dans mon docx ? Cest maintenant lui possible avec cette sparation nette des couches de prsentation et des donnes au sein dun docx ble et cest ce quillustre ce prototype.
1. Pr-requis

Avant de regarder le code du projet DataStoreSample, nous allons dabord faire un tour dhorizon des lments utilis par le prototype.
a) Le modle

Le fichier Modle.docx contenu dans le rpertoire Modle est un document Word contenant cinq contrles de contenus. Ce fichier contient lui-mme un data store de ce type : lui
<root xmlns="www.softfluent.com www.softfluent.com"> <name /> <city /> <date /> <client /> <summary /> </root>

Chacun des contrles de contenus est reli un nud de ce XML, si bien que si lon insre une donne dans le contrle de contenu li au nom, celui-ci va remplir llment name du XML, et vice versa : si lon rempli llment name du XML, celui-ci va apparatre dans le contrle de ci contenu.

30 Septembre 2007

b) Les donnes

Dans le rpertoire Donnes , on peut remarquer une srie de fichiers XML, chacun dentre eux tant construit de la mme manire que celui contenu dans le modle, la diffren que ceux-ci diffrence sont remplis. Voici le fichier Julien Martin.xml en exemple :
<root xmlns="www.softfluent.com www.softfluent.com"> <name>Julien Martin</ </name> <city>Montpellier</city city> <date>2006-12-15T00:00:00 15T00:00:00</date> <client>Cola-Coca</client client> <summary>Formation .Net d'une dure d'une semaine.</summary Formation summary> </root>

c)

Le scnario

Prenons le cas dune entreprise de services ayant n employs qui chaque fin de mission remplissent ne s une base de donnes avec des informations telles que le nom du client, la date et le sujet dintervention, via un client web. Cette socit aimerait maintenant pouvoir, partir des donnes rvention, contenues dans cette base, gnrer automatiquement un rapport dintervention par mission au format Office Word 2007. Grce la sparation de la prsentation et des donnes dans lOpen XML, des il est maintenant possible dextraire les informations de la base les donnes, former les fichiers XML correspondant, et injecter ceux-ci dans un modle de rapport dintervention de la socit. ci Ce scnario est viable quelle que soit la source de donnes utilise en back-office (cube OLAP, WebServices, base de donne SQL Server ou ORACLE, etc.) puisque le fait de passer par un fichier XML nous permet de nous abstraire de lenvironnement source. Ce scnario requiert cependa une . cependant tape pralable qui nest pas illustre ici : lextraction des donnes dune source de donnes et le illustr formatage de ces donnes dans un fichier XML au schma dfini pralablement.
d) Utilisation du prototype

DataStoreSample.exe est lapplication du scnario expos prcdemment : il permet de gnrer scna partir de fichiers XML correctement formats, les n documents Word 2007 correspondant, le tout sans OLE Automation ni le Framework 3.0, et grce aux notions de contrles de contenu ainsi que de , data store. cliquez celui ci Pour cela, double-cliquez sur lexcutable, et celui-ci va automatiquement scanner le contenu du rpertoire Donne , charger le modle, et gnrer un docx par fichier XML. Le docx sera nomm daprs le nom du fichier XML et dpos dans le rpertoire Sortie .
2. Point dintrt particulier oint a) Crer le modle (1) Ajouter les contrles de contenu

Une fois la mise en page cre, il faut ajouter les contrles de contenu. Les contrles de contenu sont dans longlet Dveloppeur qui nest pas affich par dfaut. Pour activer celui-ci allez dans le Po ci, menu Office > Options Word > Standard et cochez loption Affichez longlet Dveloppeur .

30 Septembre 2007

Une fois celui-ci activ, longlet apparat dans votre ruban Office, et dans cet onglet la zone des ci contrles de contenu. Il suffit de positionner son curseur la position voulue pour le contrle de fit contenu, puis cliquez sur le contrle de contenu dsir. Une fois le contrle de contenu ajout, il faut maintenant crer le data store puis lier le contrle de contenu ce data store.
(2) Crer un data store dans le document

La premire tape est de renommer son fichier .docx en .zip pour ensuite extraire son contenu dans un rpertoire. A la racine du rpertoire crer un rpertoire nomm customXml . Cest dans ce rpertoire que sont stocks les XML data store. Un data store est compos dun document XML contenant les donnes, puis dun document XML contenant ses proprits lidentifiant et dfinissant la relation du data store dans le document Word. Nous allons reprendre le document XML dfinissant lactivit de Julien Martin. Celui devra tre rendre Celui-ci plac dans le rpertoire /customXml et avec comme nom item1.xml . Daprs la spcification /customXm il serait tout fait possible de le nommer autrement, simplement si lon observe la mthode dont Office Word 2007 cre, nomme ou renomme des parties dans lXML data store, on saperoit que cest le nom par dfaut utilis. Pour rester simple, nous respectons donc le schma de nommage de . Office Word 2007. Il faut maintenant crer le fichier itemProps1.xml qui va servir identifier le data store. Voici celui tore correspondant notre fichier JulienMartin.xml : ienMartin.xml
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> encoding="UTF <ds:datastoreItem ds:datastoreItem ds:itemID="{E7C066FE-6FFB-46CA-9512-B7A19B9F1496} ds:itemID B7A19B9F1496}" xmlns:ds="http://schemas.openxmlformats.org/officeDocument/2006/customX http://schemas.openxmlformats.org/officeDocument/2006/customX ml"> <ds:schemaRefs> <ds:schemaRef ds:uri="www.softfluent.com" /> ds:uri </ds:schemaRefs> </ds:datastoreItem>

Vous remarquerez que le nud datastoreItem contient un GUID. Cest ce GUID qui servir servira identifier notre data store dans la couche de prsentation. Une fois le data store cr, il nous faut maintenant le relier au document. Pour cela il faut diter le document document.xml.rels pour y ajouter une relation entre document.xml et le data store, tel que celle-ci :
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/office http://schemas.openxmlformats.org/office Document/2006/relationships/customXml" Document/2006/relationships/customXml Target="../customXml/item1.xml /> ../customXml/item1.xml"

Cette relation doit tre dfinie au niveau du document.xml, mais aussi au niveau du data store et la racine du document. Les relations sont toujours contenues dans un rpertoire nomm _rels .

30 Septembre 2007

b) Lier le contrle de contenu au data store d

Il faut maintenant lier les deux fonctionnalits entre elles. Malheureusement il nexiste pas pour linstant dinterface graphique dans Office Word pour le faire, nous allons donc le faire la main aire, l dans le XML du document. Au niveau de notre contrle de contenu (correspond llment placeHolder dans le older document.xml), on va rajouter un lment nomm dataBinding qui, comme son nom lindique, permet de relier un contrle de contenu des donnes. Dans cet lment dataBinding, prcisons donc dans quel data store puiser linformation grce au GUID dfini auparavant et ensuite quelle valeur aller chercher dans notre data store grce une expression XPath. Voici un exemple de d DataBinding pour rcuprer le nom dans notre rapport exemple :
<w:dataBinding w:prefixMappings="xmlns:ns0='www.softfluent.com' xmlns:ns0='www.softfluent.com'" w:xpath="/ns0:root[1]/ns0:name[1] /ns0:root[1]/ns0:name[1]" w:storeItemID="{E7C066FE-6FFB-46CA9512-B7A19B9F1496}" />

Il faut maintenant sauvegarder le tout, reconstruire larchive, la renommer en docx, et vous disposez larchive alors dun contrle de contenu li un lment de votre data store. Pour en savoir plus sur cette tape, je vous invite consulter la spcification disponible sur le site de lECMA (http://www.ecma s http://www.ecmainternational.org/publications/standards/Ecma-376.htm), et qui explique bien plus en dtail cette international.org/publications/standards/Ecma ), partie. Maintenant que vous connaissez la thorie, il existe un outil nomm le Content Control Toolkit (http://openxmldeveloper.org/archive/2006/11/21/ContentControlToolkit.asp x) qui va vous rendre la vie bien plus facile, en permettant dcrire depuis une interface graphique votre data store et surtout de pouvoir le lier par glisser-dposer au contrle de contenu dsir.
c) Crer le document Word final

Une fois le document modle cr, il suffit donc de remplacer le data store initial par le fichier XML contenant les informations voulues. La mthode effectuant lopration de remplacement est la ns mthode ReplaceXmlDataInZip. Un fichier docx tant une archive ZIP, le prototype utilise la librairie SharpZipLib pour dcompresser larchive, puis remplacer le fichier XML, et re rie reconstruire le tout.

30 Septembre 2007

Voici le code correspondant :


private static void ReplaceXmlDataInZip(string xmlfileToReplace, ReplaceXmlDataInZip( string xmlFullName, string zipFileFullName) { string fileName = GetFileNameWithoutExtension(zipFileFullName, ".zip"); FastZip fastZip = new FastZip(); fastZip.ExtractZip(zipFileFullName, fileName, null); File.Copy(xmlFullName, xmlfileToReplace, true); .Copy(xmlFullName, fastZip.CreateZip(fileName + ".docx", fileName, true, null null); }

Une fois larchive reforme avec le nouveau data store il suffit de changer lextension en .docx et lopration est termine.

30 Septembre 2007

D. La cration dynamique de prsentations Powerpoint


Comme prsent en introduction du prototype prcdent, lOpen XML est la dsignation dusage lOpen dun standard ouvert de lECMA, originellement introduit par Microsoft, dfinissant un format de donnes pour les documents dapplications bureautiques tels que Word 2007, Excel 2007 et PowerPoint 2007. Ce format est intgralement structur en XML et le tout est compress sous forme tgralement dune archive ZIP, ce qui rend possible la cration programmatique dun document Office 2007 sans document avoir recours OLE Automation. Le prototype PresentationMLCreator a pour tche dillustrer ce principe dans un cadre de cration e e automatique de prsentations Open XML (dit presentationML). Il est cependant important de noter que lors de lcriture de ce livre blanc, Microsoft a publi le blanc, Microsoft SDK for Open XML formats (June CTP) qui permet de manipuler des fichiers Open XML osoft bien plus aisment et qui propose certaines classes (tel que Slide ou Presentation) qui ont t ce dveloppes dans ce prototype.
1. Pr-requis

PresentationMLCreator sappuie sur le Framework 2.0 ainsi que sur lAPI de gestion de package Open XML (System.IO.Packaging) contenue dans la librairie WindowsBase.dll du Framework 3.0. Il fau faut donc avoir le Framework 3.0 install ou au minimum le Framework 2.0 et la dll concerne. En utilisant lAPI contenue dans System.IO.Packaging du Framework 3.0, PresentationMLCreator cre des prsentations en respectant la spcification Open XML disponible sur le site de lECMA (http://www.ecma-international.org/publications/standards/Ecma international.org/publications/standards/Ecma-376.htm). ). Celle Celle-ci dfinit larchitecture dune prsentation PowerPoint 2007 comme ceci :

30 Septembre 2007

Comme on peut le voir sur le schma ci-dessus, les diapositives (slides) ne sont quune partie du ci package Open XML, cependant le fonctionnement de toutes les parties dun package Open XML a un fonctionnement identique, seules ses relations peuvent varier. Cest pourquoi le prototype nillustre es varier. que la cration de diapositives puisque la mthode utilise peut tre utilise pour nimporte quelle uisque utilis autre partie du package.
2. Utilisation du prototype

PresentationMLCreator permet partir dun modle XML dfini par lutilisateur et pass en paramtre lexcutable ; de gnrer en sortie une prsentation PowerPoint 2007 au format Open sortie XML. Le prototype na pas besoin davoir Office 2007 dinstall sur la machine pour gnrer celle-ci, celle et par consquent il pourrait parfaitement tourner sur un serveur. Le fichier model.xml fourni avec le prototype est un exemple de modle dfinissant une prototype prsentation, et partir de laquelle notre prsentation va tre gnre :
<presentation name="SamplePresentation SamplePresentation"> <slide title="Toto" content content="Slide 1: toto" /> <slide title=" "Titi" content="Slide Slide picture="SoftFluentLogo.jpg /> SoftFluentLogo.jpg" <slide title="Tutu" content content="Slide 3: tutu" /> </presentation>

2:

titi titi"

Daprs ce modle, PresentationMLCreator va gnrer une prsentation nomme SamplePresentation.pptx, contenant trois diapositives ayant pour titres Toto, Titi, Tutu et divers

30 Septembre 2007

contenus. En ajoutant lattribut picture avec comme valeur un chemin valide vers une image, PresentationMLCreator va ajouter au milieu de la diapositive limage correspondante.
3. Points dintrts particuliers a) Lutilisation de modles

Pour crer la prsentation en sortie PresentationMLCreator se base sur un modle de prsentation vide, contenant deux diapositives vide. La raison de ce choix est que bien quune prsentation Office 2007 soit du XML, cela reste quand mme lourd de gnrer lintgralit du XML. Le prototype est donc bas r sur une logique de modles, utilisant une prsentation modle pour le squelette de la prsentation, un modle XML pour gnrer des diapositives, ainsi quun modle XML , pour gnrer les nuds XML dfinissant des images. dfinissan De plus lintrt dutiliser des modles est que sans modifier le code source du projet, lon peut facilement changer laspect des documents gnrs. Ces trois modles sont inclus dans lexcutable et sont visible dans les sources sous le rp rpertoire Resources . Une fois les modles crs, PresentationMLCreator se contente de les utiliser en y incorporant les donnes dfinies par lutilisateur dans le fichier XML pass en paramtre. Une fois les donnes de la prsentation gnrer charges, lon peut passer ltape de production de notre document. La production sorganise en quatre tapes : 1. 2. 3. 4. Ouverture du package Ouverture / Cration de la diapositive Ajout des donnes dans la diapositive Sauvegarde et fermeture du package

b) Manipulation du package et des ses lments

Un package Open XML correspond au document Open XML (ici un pptx), qui est lui-mme compos de parts . Le Framework 3.0 fournit des classes pour grer le package (System.IO.Packaging.Package) ainsi que ses parts (System.IO.Packaging.PackagePart). De manire ce que leur ckaging.PackagePart). manipulation soit plus aise, nous utilisons nos propres classes qui encapsulent celles-ci comme par exemple pour la gestion du package. ci La classe soccupant de grer le package sappelle PackageManager et nous facilite lutilisation de la classe du Framework, pour lajout, la s rcupration ou la sauvegarde des relations et des parts.

30 Septembre 2007

Cette classe va tre utilise par toutes les autres classes manipulant notre package tel que Slide ou Presentation. Dans un fichier Open XML, nimporte quel lment le composant est un part et par consquent, hier ils ont tous le mme comportement au sein du package. Du coup, que mon part soit une diapositive c diapositive, notre prsentation, un graphique, une note ou autre, cela revient au mme au niveau du package : mme ce sont des PackagePart. Vous retrouverez donc deux classes, Slide et Presentation, qui permettent de grer ces parts de manire plus concrte :

Par consquent, grce ces classes, pour ajouter une nouvelle diapositive une prsentation Open sentation XML partir de notre modle de prsentation, il suffit de faire :
using (PackageManager packageManager = new PackageManager PackageManager(Properties.Resources.PresentationTemplate)) .PresentationTemplate)) { Slide slide = Slide.Create(packageManager, "slide1.xml", .Create(packageManager, Properties.Resources Resources.SlideTemplate, "slideLayout1"); Presentation presentation = Presentation.Open(packageManager); .Open(packageManager); presentation.AddSlide(slide); presentation.Save(); }

30 Septembre 2007

c)

Ajout de texte dans une diapositive

Le format Open XML tant document lon sait prcisment comment et o sont stocks les informations. De ce fait, lon sait prcisment comment manipuler du texte, des images, des graphiques, animations, timings, etc. Le texte en presentationML est contenu dans un PlaceHolder, qui est dj cr dans notre modle contenu SlideTemplate.xml. Il nous suffit donc dd rcuprer ce PlaceHolder et dinsrer le texte dans celui-ci, celui tout en respectant la norme Open XML, tel que :

public void WritePlaceholderString( WritePlaceholderString(string name, string text) { string xPathQuery = string.Format("//p:sp[p:nvSpPr/p:cNvPr/@name='{0}']" string "//p:sp[p:nvSpPr/p:cNvPr/@name='{0}']" + "/p:txBody/a:p/a:endParaRPr", name); , XPathNavigator subTitleNav = PackageData.CreateNavigator().SelectSingleNode(xPathQuery, Constants.NamespaceManager); .NamespaceManager); using (XmlWriter writer = subTitleNav.InsertBefore()) { // <a:r> // <a:t>Text String</a:t> // </a:r> writer.WriteStartElement(Constants.DrawingMLPrefix, writer.WriteStartElement( Constants.DrawingMLNamespace); .DrawingMLNamespace); writer.WriteElementString(Constants.DrawingMLPrefix, writer.WriteElementString( Constants.DrawingMLNamespace, text); .DrawingMLNamespace, writer.WriteEndElement(); } }

"r", "t",

30 Septembre 2007

d) Ajout dimages dans une diapositive

Lajout dune image dans une diapositive suit le mme principe que lajout de texte, except que les images contenues dans le document sont elles aussi contenues dans le package. Les images sont elles aussi des parts contenues dans le rpertoire /ppt/media du package. Il faut donc : 1. Crer le part 2. Crer la relation qui lie la diapositive limage 3. Ajouter le presentationML correspondant une image dans la diapositive c Tout ceci est fait dans la mthode AddPicture dans la classe Slide :
public void AddPicture(string pictureName, Bitmap bitmap, string contentType contentType) { using (MemoryStream ms = new MemoryStream()) { bitmap.Save(ms, Slide.GetImageFormat(contentType) .GetImageFormat(contentType)); byte[] data = ms.GetBuffer(); [] // create the media part Uri mediaUri = new UriKind.Relative);

Uri(string.Format("/ppt/media/{0}" "/ppt/media/{0}",

pictureName),

this.Package.CreateNewPart(mediaUri, contentType, data, 0, (int .Package.CreateNewPart(mediaUri, int)ms.Length); // create the relationship string rId = this.Package.CreateInternalRelationship(this this this.Uri, Constants.ImageRelationshipType); .ImageRelationshipType);

mediaUri,

// add the picture element to the slide, with the correct relationship Id XPathNavigator slideNav PackageData.CreateNavigator().SelectSingleNode("/p:sld/p:cSld/p:spTree" PackageData.CreateNavigator().SelectSingleNode("/p:sld/p:cSld/p:spTree", Constants.NamespaceManager); .NamespaceManager); slideNav.AppendChild(string string.Format(Properties.Resources.PictureTemplate, .PictureTemplate, pictureName, rId)); } }

Le PictureTemplate utilis dans la mthode contient lensemble du XML pour crer un lment image dans une diapositive selon la norme Open XML.

30 Septembre 2007

E. Lutilisation du protocole Webdav


Bien que pas directement li Office 2007 car disponible depuis des versions antrieures dOffice, le support de WebDav nous apparat un lment intressant mentionner car plusieurs diteurs nous ont fait des demandes sur la manire de sauvegarder les documents en HTTP. Cest surtout dans la . combinaison de Webdav et de la manipulation de donnes mtiers par service web que les scnarios deviennent intressants, par exemple pour de la gestion documentaire associe une application mtier. Il est frquent de vouloir associer des pices jointes un dossier, certaines de ces pices t pouvant dailleurs hberger des donnes structures laide des contrles de contenu dans un scnario Office 2007. Les diteurs de logiciels cherchent en effet souvent permettre un client de sauvegarder en HTTP permettre des documents sur un rfrentiel distant tel quun serveur Internet Information Server . Cela fonctionne partir du moment o le serveur supporte le protocole WebDav. IIS ncessite une configuration pour cela mais supporte cette fonctionnalit. Comme cela est finalement assez peu connu, nous avons mis disposition ce serveur pour dmonstration. Pour lutiliser il suffit dentrer lurl http://office.softfluent.com/WebDav sample ent.com/WebDav comme rpertoire denregistrement de votre document, au moment de la sauvegarde de celui celui-ci dans Office. Il vous sera demand un nom dutilisateur et mot de passe, identique ceux donns pour les autres prototypes (voir liste des liens en fin de document). li Dans un scnario rel intgr une application, il est possible dautomatiser le choix du rpertoire denregistrement pour une exprience utilisateur simplifie, en ralisant un dveloppement pour encapsuler ces lments. Voici les liens des sites qui nous ont permis de mettre ce serveur en place : es

http://www.windowsnetworking.com/articles_tutorials/WebDAV-IIS.html http://www.windowsnetworking.com/articles_tutorials/WebDAV http://www.laboratoire-microsoft.org/articles/mise microsoft.org/articles/mise-en-place-webdav-iis6

30 Septembre 2007

VII. Conclusion
Au travers de ce livre blanc, nous esprons vous avoir fait partager notre enthousiasme sur les nouvelles possibilits dOffice 2007 et la formidable opportunit de march que cela constitue pour qui souhaite dvelopper des applications innovantes pour ses utilisateurs. Les scnarios en introduction ne sont que quelques pistes de rflexion et nous faisons confiance aux dveloppeurs et aux socits spcialises sur un secteur pour imaginer les scnarios rels quils veloppeurs pourront dvelopper et faire adopter sur leur march, en sappuyant au besoin sur t Les exemples des diteurs dj prsents dans ce livre blanc dmontrent la diversit des opportunits diversit et solutions apportes aux enjeux des clients. A notre sens, linvestissement notable et prcoce dun nombre significatif dditeurs de logiciels diteurs constitue une preuve tangible de lvolution dOffice 2007 dune simple suite de produ dOffice productivit pour les utilisateurs vers une plate-forme de construction dapplications mtier . forme Bien sr, nous ne sommes quau dbut de cette volution en profondeur qui prendra un certain temps avant dtre une ralit quotidienne, mais ce sont les socits qui sauront prendre un coup davance sur le march qui en tireront les bnfices. Et dans la mesure o cette transformation est en cours, nous aimons conseiller nos clients, et en particulier les diteurs de logiciels, de participer activement cette transformation plu transformation plutt que dattendre de la subir. Nhsitez pas nous contacter pour changer sur ce sujet, mme pour une simple discussion. ce

30 Septembre 2007

VIII. Quelques liens utiles


Nom du lien Microsoft Page France sur Office 2007 Inscription gratuite au programme Innovate On de Microsoft Livre blanc Office Business Applications http://www.microsoft.com/france/office/2007/version2007.mspx http://microsoft.mrmpslc.com/Office2007/Default.aspx?LangType=4105 http://members.microsoft.com/partner/france/editeurs/innovation.aspx om/partner/france/editeurs/innovation.aspx http://www.microsoft.com/downloads/details.aspx?familyid=736b9708 ?familyid=736b9708a332-4aa7-a4d9-5971c486b9e1&displaylang=en http://www.microsoft.com/downloads/details.aspx?FamilyID=941B3470 http://www.microsoft.com/downloads/details.aspx?FamilyID=941B34703AE9-4AEE-8F43-C6BB74CD1466&displaylang=en http://msdn2.microsoft.com/fr-fr/office/default.aspx http://msdn2.microsoft.com/fr-fr/office/bb409619.aspx fr/office/bb409619.aspx http://www.microsoft.com/france/msdn/office/openxml/default.mspx http://www.microsoft.com/downloads/details.aspx?FamilyID=AD0B72FB http://www.microsoft.com/downloads/details.aspx?FamilyID=AD0B72FB4A1D-4C52-BDB5-7DD7E816D046&mg_id=10124 http://msdn2.microsoft.com/en-us/library/bb243344.aspx us/library/bb243344.aspx http://msdn2.microsoft.com/en-us/library/aa338199.aspx us/library/aa338199.aspx Lien

Pack de compatibilit Office 2007

Centre de dveloppement Office Lutilisation dOpen XML Lespace dveloppement Open XML Microsoft SDK for Open XML format

Les contrles de contenu Liste des lments et attributs du XML dun ruban Documentation sur le dploiement dun oiement complment Office 2007 Complment Excel 2007 pour la gestion des listes synchronises Solutions dveloppes par les diteurs Calypteo Esker Produit Flydoc ILOG Produit Rules for .NET Symtrax Medasys Tmoignages vidos Calypteo / SoftFluent

http://msdn2.microsoft.com/en-us/library/bb332051.aspx us/library/bb332051.aspx http://msdn2.microsoft.com/en-us/library/bb332052.aspx us/library/bb332052.aspx http://www.microsoft.com/downloads/details.aspx?FamilyID=25836E52 http://www.microsoft.com/downloads/details.aspx?FamilyID=25836E521892-4E17-AC08-5DF13CFC5295&displaylang=en

http://www.calypteo.com http://www.esker.com http://www.flydoc.com http://www.ilog.com http://www.ilog.com/products/rulesnet http://www.symtrax.fr http://www.medasys.com

http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=bb003a96-cf46-46a6-8749-a8397d34ecec a8397d34ecec

30 Septembre 2007

CEGID

http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=5d51e7f1-95a2-474a-ac07-c1067e8d7 c1067e8d7f5b http://news.com.com/1606-2_3-6182663.html http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=3d523c43-a082-4d6b-a667-308649cb05b5 308649cb05b5 http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=0cd3833b-092d-405c-9f1c-9b8af05a 9b8af05a66b3 http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=6c708a71-ac13-4f48-a6a7-b5f28b4a59d5 8b4a59d5 http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=2150e505-6089-4778-a94a-e2cfd730a904 e2cfd730a904 http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=5fb50ed6-2aa2-4693-b0c4-76847d8b94c4 76847d8b94c4

Dassault Systmes ILOG

Kayentis

KDS

Lexis-Nexis

Schneider Electric

Blogs et contenu communautaire RL Consulting : socit dexpertise SharePoint utilise par plusieurs diteurs de logiciels Blog de Franck Halmaert (Marketing Office) Blog de Pierre Lagarde (Contenu dv. Office) Communaut Open XML Exemple dune combinaison de contrles de contenu avec un data store Liste des identifiants des fonctionnalits et images existantes dans Office 2007 Mise en uvre de Webdav avec IIS Lutilisation des listes synchronises sous Excel en version 2007 (article) Liens Softfluent SoftFluent CodeFluent.com: Service gratuit de fabrication de composants mtiers Email de contact http://www.softfluent.com http://www.codefluent.com http://www.rlconsulting.eu

http://blogs.microsoft.fr/franckha http://blogs.developpeur.org/fox

http://openxmldeveloper.org http://openxmldeveloper.org/articles/Mapping_Content_Controls_to_Cu stom_XML_Parts_using_Notepad.aspx http://www.sunflowerhead.com/msimages/Office2007IconsGallery.zip

http://www.laboratoire-microsoft.org/articles/mise-en-place-webdav-iis6 http://www.softfluent.com/article_excellist_fr.aspx

info@softfluent.com

Prototypes Office 2007 dvelopps par SoftFluent Prototypes Office 2007 avec code et documentation http://office.softfluent.com Compte office.microsoft, Mot de passe @@Office2007

Vous aimerez peut-être aussi