Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Smarte und verbundene Dokumente mit Office 2003 und .NET entwickeln

Ähnliche Präsentationen


Präsentation zum Thema: "Smarte und verbundene Dokumente mit Office 2003 und .NET entwickeln"—  Präsentation transkript:

1 Smarte und verbundene Dokumente mit Office 2003 und .NET entwickeln
Microsoft Office System 2003 Smarte und verbundene Dokumente mit Office 2003 und .NET entwickeln Geschäftsdaten intelligent mit Dokumenten verbinden

2 Zur Person Dipl. Inf. Marcel Gnoth, MCSD NTeam GmbH, Berlin
NTeam GmbH, Berlin Leiter Softwareentwicklung MS Gold Partner Busines Intelligence, Information Worker, Advanced Infrastructur Autor dotnetpro und dotnet-magazin Trainer (u.a. SPC Berlin, ) Themen VB6, COM Datenbanken, Yukon Verteilte Informationssysteme mit .Net Office System 2003 Integration Reisen in ferne Länder: 

3 Agenda Einleitung VBA und das Web Services Toolkit 2.01 Research Services XML-Schemata und Office Dokumente Smart Documents (ISmartDocument) VSTO 2003 VSTO 2005 Beta Smart Tags Information Bridge Framework (IBF) Fazit

4 Office in den Unternehmen
Microsoft Office System 2003 Einleitung Office in den Unternehmen

5 Office als Client Mehr als 400 Mio Officeinstallationen Für sehr viele Menschen ist Office das Hauptwerkzeug im Büro Wie kann Ihnen das Arbeiten leichter gemacht werden? Wenige neuen Features, Bessere Integration in die Unternehmens IT

6 Probleme im Büroalltag für Anwender...
Anwender muss Informationen in verschiedenen Systemen zusammensuchen Outlook, SharePoint CRM, in HR, in SAP, in ... Anwender muss in der Lage sein, diese Systeme zu bedienen, auch wenn er/sie nur selten damit arbeitet Keine Unterstützung bei der Dateneingabe Viel manuelle Tipparbeit Austausch zwischen den verschiedenen Systemen könnte für den Anwender leichter sein. Nur Copy & Paste Oder abtippen 

7 Probleme im Büroalltag für IT ...
Office Dokumente sind Freitext Nutzer kann fehlerhafte, unstrukturierte Eingaben machen schlechte Datenqualität Parsen nach Informationen aufwendig Dokumentformat properitär Elektronische Verarbeitung (auf Servern) aufwendig Austausch mit anderen heterogenen Systemen schwierig

8 Unterstützung durch Office 2003
Dokumente können als XML gespeichert werden Austausch mit anderen Systemen Verarbeitung auf dem Server ohne Office Verknüpfen eines Office Dokumentes mit einem XML-Schema Prüfen von Nutzereingaben auf Fehler Daten können einfach elektronisch weiterverarbeitet und ausgetauscht werden

9 Unterstützung durch Office 2003
Kontextbezogene Informationen bereitstellen Aggregation von Informationen aus verschiedenen Systemen Recherchieren von Informationen Einfügen von Daten in ein Office Dokument Vermeidet Fehleingaben Erhöht Datenqualität

10 Viele Wege führen nach Friedrichshagen ...
Microsoft hat viel Energie unter die Oberfläche von Office gesteckt Die Anwender verwenden eh nur 10% der Möglichkeiten Deshalb viel Energie auf Smart Clients und Unterstützung von Information Workern Leute die schnell, einfach auf viele Infos zugreifen müssen Das (stärkste) Argument für Office 2003

11 Taskpane / Aufgabenbereich
Werkzeuge Viele Ansätze Taskpane / Aufgabenbereich Formulare zur Dateneingabe Nachschlageergebnisse Informationen / Aktionen XML-Schemata Kein Freitext mehr Kontextbezogener Zugriff auf TaskPane Smart Tags Aktionen und Infos zu einem ausgewählten Wort Webservice Zugriff Nachschlagewerke, Datenaustausch

12 Und ich dachte immer Officeprogrammierung ist langweilig 
Umsetzungen Und ich dachte immer Officeprogrammierung ist langweilig  Office VBA VS.Net, Toolkits und Werkzeuge ohne Ende ... XML, Research Service, Smart Tags, Smart Document, ISmartDocument, IBF, VSTO 2003 und 2005, WS für VBA, MOSTL, RSDE, RSCL, RSTV, MOSTL, SharePoint,

13 Technologieübersicht
TaskPane Research Services IBF ISmartDocument VSTO Im Dokument SmartTags XML VSTO 2005 Kontextbezogene Hilfe

14 Zugriffe auf die schöne, bunte Web Service Welt von VBA aus
Webservice Toolkit 2.01 VBA und Webservices Zugriffe auf die schöne, bunte Web Service Welt von VBA aus

15 Office 2003 Webservice Toolkit 2.01
Separater Download Tools -> Add Webreferenz Erzeugt VBA-Proxyklassen Dynamische Listen über WS Zugriff Amazon, eBay, ...

16 Webservice Toolkit 2.01 Demo VBA und Webservices

17 Fazit Sehr leichte Einbindung von WS in VBA

18 Research Services Nachschlagewerke für das eigene Unternehmen
Microsoft Office System 2003 Research Services Nachschlagewerke für das eigene Unternehmen Webservices und die TaskPane

19 Research Services (RS) – Überblick
Recherche von Informationen über Webservices Word, Excel, PPT, Outlook, Publisher, OneNote, Visio, IE Anzeige der Informationen in der TaskPane Übernahme von Daten in das Dokument Office eigene Dienste Kommerzielle Anbieter Eigenentwicklung WS mit beliebiger Sprache implementieren WS kann auf beliebiger Plattform laufen WS muss zwei XSD – Schemata unterstützen

20 Verfügbare Research Services
Lokal auf dem Computer Thesaurus und Übersetzung Office 2003 Research Services Wörterbuch, Enzyklopädie, Web Suche, Aktienkurse Kommerzielle Anbieter Factiva, eLibrary, Gale, WorldLingo Weitere werden kommen SharePoint Portal server

21 Research Beispiele

22 Eigene Research Services entwickeln
Beliebige Sprache, beliebige Plattform Ein Webservice mit zwei Methoden Register (oder Registry-Keys direkt schreiben) Query SOAP Response muß Schemata entsprechen MS Werkzeuge RS - SDK RS - Development Extras RS mit Smart Tags erweitern Daten in das Dokument einfügen Andere Aktionen starten ... Dll auf dem Client benötigt!

23 RS – Schemata

24 RS SDK – Schemata WS Registration WS Query Beispiele, Doku, Schemata
Request Response WS Query Beispiele, Doku, Schemata Codieren der Werbservice Antworten ist „fummlig“ (zu) viel Handarbeit Nicht wirklich schön .WriteStartElement("Content", ns:="urn:Microsoft.Search.Response.Content") .WriteElementString("P", "Folgende Pokemon wurden gefunden:") .WriteStartElement("Image source=""" + pathHTTP + "Pokemon/Gengar.gif"" ") .WriteEndElement() .WriteElementString("P", "Name: " + m_Pokemons.Name) .WriteStartElement("Tabular") .WriteStartElement("Record") .WriteElementString("Name", "Type")

25 Verwenden von Smart Tag Actions Definiert durch Query Response
RS – Smart Tags Verwenden von Smart Tag Actions Definiert durch Query Response Simple Smart Tags Insert, Copy, NewQuery, Hyperlink Smart Tag API Dll Sehr flexibel

26 RS Hallo Welt SmartTag Northwind RS
Research Services Demo RS Hallo Welt SmartTag Northwind RS

27 RS – Development Extras (RSDE)
Separater Download Research Services Class Library (RSCL) OO-Wrapper für SDK Schemata Macht das Leben leichter Mit Quellcode RSCL Wizard Neuer Projekttyp Viele Samples Research Services Tracing and Validation Tool (RSTV)

28 RSDE Demo RSCL Wizard und RSTV

29 Installation durch Anwender Installation durch Admin
Deployment / Registry Installation durch Anwender Eingabe der URL Installation durch Admin Verwenden einer .reg - Datei HKEY_CURRENT_USER\Software\Microsoft\... …Office\11.0\Common\Research HKEY_LOCAL_MACHINE\Software\Microsoft\... …Office\11.0\Common\Research Ausnahme: eigene Smart – Tags Dll auf dem Client Später mehr

30 Einfache Recherche aus Office Applikationen heraus
Fazit Einfache Recherche aus Office Applikationen heraus Kombinieren mit Volltextsuche des SQL Servers Dynamisches Update WS können auf jedem System gehostet werden! SELECT ProductName, QuantityPerUnit FROM Products WHERE CONTAINS(ProductName, ' FORMSOF (INFLECTIONAL, dry) ')

31 XML – Schemata und Office Dokumente
Microsoft Office System 2003 XML – Schemata und Office Dokumente Schluss mit dem Freitext

32 Überblick Office Dokumente (Freitext) mit einem XML-Schema verknüpfen Daten können als XML gespeichert (und weiterverarbeitet) werden Trennung der Daten von der Präsentation

33 XML in Office Offenes XML-Dateiformat Verknüpfen der Dokumente mit einem XML-Schema GUI-Integration über Aufgabenbereich (auch Outlook ein bisschen)

34 Freitext

35 Freitext

36 Inhalt als XML <ConferenceReport>
<Date>3/24/2004</Date> <Summary> <Keyword>XML Conference (Europe)</Keyword> <Abstract>Role of XML on the Desktop</Abstract> </Summary> <Attendees> <Attendee Name="John" Doe”> <Department>Health Agency</Department> <Potential> <Sales>100</Sales> <Growth>25%</Growth> <Remarks>The team comprises great innovators</Remarks> <ToDo>Contact their IT Manager</ToDo> </Potential> </Attendee> <Attendee Name="Judith" Jones”> <Department>Finance Agency</Department> </Attendees> <Conclusion>Organize another European tour </Conclusion> </ConferenceReport>

37 Formatierungen

38 Keine verschachtelten Tags
Formatierung als XML WordML Eigenes Schema HTML ähnlich Keine verschachtelten Tags <w:p> <w:r> <w:rPr> <w:b /> </w:rPr> <w:t>John Doe</w:t> </w:r> <w:i /> <w:t>Health Agency</w:t> </w:p>

39 Dokumente und XML-Schemata
Selbstdefinierte (Geschäfts-) Schemata Datenorientiert Kunde, Auftrag, Mitarbeiter, ... Erlauben Zerlegung des Dokumentes in Datenelemente MS-Referenz-Schemata Präsentationsorientiert Fett, Kursiv, Tabelle, Zelle, ... WordprocessingML, SpreadsheetML, FormTemplate, DataDiagramingML Offen und Lizenzgebührenfrei Erzeugen und verändern von Officedokumenten auf dem Server ohne Office Austausch in heterogenen Systemen

40 Hello Word in WordML <?mso-application progid="Word.Document"?>
<w:wordDocument xmlns:w=" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:sl=" xmlns:aml=" xmlns:wx=" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F B3-11d1-A29F-00AA00C14882" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve"><o:DocumentProperties><o:Title>Hello World</o:Title><o:Author>John Peltonen</o:Author><o:LastAuthor>John Peltonen</o:LastAuthor><o:Revision>1</o:Revision><o:TotalTime>0</o:TotalTime><o:Created> T04:15:00Z</o:Created><o:LastSaved> T04:15:00Z</o:LastSaved><o:Pages>1</o:Pages><o:Words>1</o:Words><o:Characters>12</o:Characters><o:Company>3SHARP</o:Company><o:Lines>1</o:Lines><o:Paragraphs>1</o:Paragraphs><o:CharactersWithSpaces>12</o:CharactersWithSpaces><o:Version> </o:Version></o:DocumentProperties><w:fonts><w:defaultFonts w:ascii="Times New Roman" w:fareast="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman"/></w:fonts><w:styles><w:versionOfBuiltInStylenames w:val="4"/><w:latentStyles w:defLockedState="off" w:latentStyleCount="156"/><w:style w:type="paragraph" w:default="on" w:styleId="Normal"><w:name w:val="Normal"/><w:rPr><wx:font wx:val="Times New Roman"/><w:sz w:val="24"/><w:sz-cs w:val="24"/><w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/></w:rPr></w:style><w:style w:type="character" w:default="on" w:styleId="DefaultParagraphFont"><w:name w:val="Default Paragraph Font"/><w:semiHidden/></w:style><w:style w:type="table" w:default="on" w:styleId="TableNormal"><w:name w:val="Normal Table"/><wx:uiName wx:val="Table Normal"/><w:semiHidden/><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr><w:tblPr><w:tblInd w:w="0" w:type="dxa"/><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr></w:style><w:style w:type="list" w:default="on" w:styleId="NoList"><w:name w:val="No List"/><w:semiHidden/></w:style></w:styles><w:docPr><w:view w:val="print"/><w:zoom w:percent="100"/><w:displayBackgroundShape/><w:doNotEmbedSystemFonts/><w:proofState w:grammar="clean"/><w:attachedTemplate w:val=""/><w:defaultTabStop w:val="720"/><w:punctuationKerning/><w:characterSpacingControl w:val="DontCompress"/><w:optimizeForBrowser/><w:validateAgainstSchema/><w:saveInvalidXML w:val="off"/><w:ignoreMixedContent w:val="off"/><w:alwaysShowPlaceholderText w:val="off"/><w:compat><w:breakWrappedTables/><w:snapToGridInCell/><w:wrapTextWithPunct/><w:useAsianBreakRules/><w:dontGrowAutofit/></w:compat></w:docPr><w:body><wx:sect><w:p><w:r><w:t>Hello WordML!</w:t></w:r></w:p><w:sectPr><w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="720" w:footer="720" w:gutter="0"/><w:cols w:space="720"/><w:docGrid w:line-pitch="360"/></w:sectPr></wx:sect></w:body></w:wordDocument>

41 Hello World-etwas schöner
<?mso-application progid="Word.Document"?> <w:wordDocument xmlns:w=" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:sl=" xmlns:aml=" xmlns:wx=" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F B3-11d1-A29F-00AA00C14882" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve"><o:DocumentProperties><o:Title>Hello World</o:Title><o:Author>John Peltonen</o:Author><o:LastAuthor>John Peltonen</o:LastAuthor><o:Revision>1</o:Revision><o:TotalTime>0</o:TotalTime><o:Created> T04:15:00Z</o:Created><o:LastSaved> T04:15:00Z</o:LastSaved><o:Pages>1</o:Pages><o:Words>1</o:Words><o:Characters>12</o:Characters><o:Company>3SHARP</o:Company><o:Lines>1</o:Lines><o:Paragraphs>1</o:Paragraphs><o:CharactersWithSpaces>12</o:CharactersWithSpaces><o:Version> </o:Version></o:DocumentProperties><w:fonts><w:defaultFonts w:ascii="Times New Roman" w:fareast="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman"/></w:fonts><w:styles><w:versionOfBuiltInStylenames w:val="4"/><w:latentStyles w:defLockedState="off" w:latentStyleCount="156"/><w:style w:type="paragraph" w:default="on" w:styleId="Normal"><w:name w:val="Normal"/><w:rPr><wx:font wx:val="Times New Roman"/><w:sz w:val="24"/><w:sz-cs w:val="24"/><w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/></w:rPr></w:style><w:style w:type="character" w:default="on" w:styleId="DefaultParagraphFont"><w:name w:val="Default Paragraph Font"/><w:semiHidden/></w:style><w:style w:type="table" w:default="on" w:styleId="TableNormal"><w:name w:val="Normal Table"/><wx:uiName wx:val="Table Normal"/><w:semiHidden/><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr><w:tblPr><w:tblInd w:w="0" w:type="dxa"/><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr></w:style><w:style w:type="list" w:default="on" w:styleId="NoList"><w:name w:val="No List"/><w:semiHidden/></w:style></w:styles><w:docPr><w:view w:val="print"/><w:zoom w:percent="100"/><w:displayBackgroundShape/><w:doNotEmbedSystemFonts/><w:proofState w:grammar="clean"/><w:attachedTemplate w:val=""/><w:defaultTabStop w:val="720"/><w:punctuationKerning/><w:characterSpacingControl w:val="DontCompress"/><w:optimizeForBrowser/><w:validateAgainstSchema/><w:saveInvalidXML w:val="off"/><w:ignoreMixedContent w:val="off"/><w:alwaysShowPlaceholderText w:val="off"/><w:compat><w:breakWrappedTables/><w:snapToGridInCell/><w:wrapTextWithPunct/><w:useAsianBreakRules/><w:dontGrowAutofit/></w:compat></w:docPr> <w:body><wx:sect><w:p><w:r><w:t>Hello World!</w:t></w:r></w:p> <w:sectPr><w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="720" w:footer="720" w:gutter="0"/><w:cols w:space="720"/><w:docGrid w:line-pitch="360"/></w:sectPr></wx:sect> </w:body> </w:wordDocument> Namespace Declarations Document Properties Section Properties

42 XML erlaubt keine überlappenden Tags wie HTML:
WordML – im Detail XML erlaubt keine überlappenden Tags wie HTML: <p><b>This is some <i>bolded</b> and Italicized text</i></p> WordML: <p> <r> <rPr> <b/> </rPr> <t>This is some</t> </r> <rPr> <b/> <i/> </rPr> <t>bolded</t> ... etc ... </p>

43 Save ‘Data Only’ or Transform
XML und Word Plain XML vs Word XML: Word Your XML Save ‘Data Only’ or Transform Microsoft Corp. Microsoft Corp. Database 2/21/2003 Strong Buy Strong Buy 2/21/2003 Transform Open/Save WYSIWYG Web Page WordML Microsoft Corp. 2/21/2003 Microsoft Corp. Strong Buy 2/21/2003 Transform Strong Buy

44 XML in Word-Formularen

45 Microsoft Office System 2003
Demo Word – XML – Excel

46 XML - Schema Validierung
Bei der Eingabe Platzhalter bei der Eingabe Dokumente schützen

47 Schemalvalidierung und Platzhalter
Microsoft Office System 2003 Demo Schemalvalidierung und Platzhalter

48 XML-Format eröffnet viele neue Wege
Fazit XML-Format eröffnet viele neue Wege Verarbeiten von Dokumenten ohne Office Schemavalidierung Datenaustausch

49 ISmartDocument COM Schnittstelle
Microsoft Office System 2003 Smart Documents ISmartDocument COM Schnittstelle

50 Programmieren der Taskpane
Smarte Dokumente Programmieren der Taskpane Dokument mit benutzerdefinierten Schema verknüpft Code wird Elementen des Schemas zugeordnet Code Lokal auf Client oder auf Server Wird auf dem Client ausgeführt Erhöhte Sicherheit Einfaches Deployment

51 Smart Document - Komponenten
Dokument mit XML Schema Solution URL verweißt auf XML-Manifest Manifest beschreibt Dateien des XML-Expansion Pack‘s Code (Dll), Bilder, Daten Komponenten können von Webserver geladen werden Jetzt ist das Doc Smart  XML Schema Document name address Solution URL XML Manifest dll image schema config

52 Wo zu finden ..? Word 2003 und Excel 2003 Word: Tools -> Templates and Add-ins Excel: Data -> XML -> XML Expansion Packs

53 Smart Dokument Installation
Manifest muß signiert sein Manifest muß von einem vertrauten Server stammen .net CAS

54 Smart Documents Demo SmartDoc verwenden

55 Das Manifest <manifest xmlns=" <version>1.0</version> <uri>NorthwindSmartDocDemo</uri> <solution> <solutionID>Smart Doc Files</solutionID> <type>smartDocument</type> <alias lcid="1033">Northwind Smart Document Demo</alias> <file> <type>solutionActionHandler</type> <managed /> <version>1.1</version> <filePath>NorthwindSmartDoc.dll</filePath> <CLSNAME>NorthwindSmartDoc.DocActions</CLSNAME> </file> <type>other</type> <version>1.2</version> <filePath>Interop.SmartTagLib.dll</filePath> </solution> <solutionID>Schema Files</solutionID> <type>schema</type> <alias lcid="1033">Northwind Work Absence Form Schema</alias> <runFromServer /> <filePath>workabsence.xsd</filePath> </manifest>

56 ISmartDocument COM – Schnittstelle
VB6 oder .Net oder VC++ oder Delphi  Office Setup PIA‘s für Word/Excel und Smart Tag Support mitinstallieren !!! 17 Methoden Populate OnChange 8 Eigenschaften

57 ISmartDocument-Porperties
Namespace XML-Schema ISmartDocument-Porperties SmartDocXmlTypeCaption SmartDocXmlTypeCount SmartDocXmlTypeName (Zuordnung zwischen Schema-Elementen und dem Code) <xsd:schema xmlns:xsd=" xmlns="urn: <xsd:element name="Name" type="xsd:string" /> <xsd:element name="Skill" type="xsd:string" /> <xsd:element name="Type" type="xsd:string" /> </xsd:schema> Public Const BASEURI As String = "urn: Public Const Poke_NAME As String = BASEURI & "#Name" Public Const Poke_SKILL As String = BASEURI & "#Skill" Public Const Poke_TYPE As String = BASEURI & "#Type" Public Const TYPESCOUNT As Integer = 3

58 Fröhliches Late Binding mit Zahlen
#VacationRequest ControlCount = 5 101 ControlIndex + 100 102 103 104 105

59 Ablauf

60 Smart Doc implementieren
Smart Documents Demo Smart Doc implementieren

61 Manifest Security Check
Smart Doc Security Manifest Security Check Tool verwenden um Manifest und Code zu signieren xmlsign.exe, SmartDoc SDK Kann auf Entwicklerrechnern deaktiviert werden Kleine Regdatei Quellserver muß zu Trusted Sites gehören Localhost = Intranet, trusted = nicht vertraut [HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Common\Smart Tag] "DisableManifestSecurityCheck"=dword:

62 Smart Document Security - CAS
.Net – Code Access Security (CAS) Für Dateien, die auf den Client runtergeladen und ausgeführt werden sollen CAS kann zentral von Admins ausgerollt werden Detaillierte Einstellungen Caspol.exe -ag All_Code -url "file://C:/Smart Doc Files/*" FullTrust -n NorthwindSmartDocDemo

63 Kostenlos, mit Quellcode nicht supported
Vertigo Wraper Kostenlos, mit Quellcode nicht supported Gute FAQ! Neue Projekttypen in VS.Net Kapselt das ISmartDocument Interface Objektorientiert Programmierung einfacher Weniger Flexibilität

64 Fazit Sicherheit und Deployment Endanwender erhält kontextsensitive Hilfe  Entwicklung ist nicht so elegant  COM – basierte Schnittstelle (PIA) Wird mit VSTO 2005 obsolet

65 VSTO 2003 Visual Studio Tools für Office V1.0
Microsoft Office System 2003 VSTO 2003 Visual Studio Tools für Office V1.0 Word und Excel mit VS.Net programmieren

66 Strategisches Tool für die Office programmierung
Überblick Strategisches Tool für die Office programmierung VSTO 2003 nur für Word und Excel VSTO 2003 ist eine V1.0, der nächste Sprung kommt mit VSTO 2005 Office Applikationen haben COM-API VSTO soll Interop erleichtern VSTO bietet: Vorlagen für VS.Net Aktualisiert lokale Entwicklereinstellungen (CAS) Code Behind – Modell, aber keine Office Designer Gedacht für professionelle Entwickler VS.Net .Net Framework Wird nicht VBA ersetzen (Für Enduser)

67 VSTO – Entwicklert programmiert
Runtime Design time Developer Visual Studio

68 Business Logic Visual Studio
VSTO – Deployment Business Logic Runtime Design time Developer .NET Assembly Code will typically be stored on a share or server for easy deployment and maintenance Visual Studio

69 Business Logic Excel VSTO – Anwender .NET Security Policy Runtime
.NET Assembly .NET Security Policy Runtime Design time Assembly is downloaded from share or server and code runs, subject to restricted security policy Excel

70 Erzeugen einer VSTO Lösung
Demo Erzeugen einer VSTO Lösung

71 Code in Dokumenten wird geblockt
Sicherheit VBA Code in Dokumenten wird geblockt Low, Medium, & High security modes AuthentiCode signatures for code authenticity Codeausführung: Alles oder nichts Anwender treffen „mutige“ Entscheidungen „Dumm, aber glücklich!“ 

72 Überblick - Sicherheit
VSTO erzeugt normale .Net Assemblies Code Access Security (CAS) muß auf dem Client konfiguriert sein Keine Entscheidung des Anwenders Kein „Makro aktivieren J/N“ Auf Entwicklerrechner wird die CAS bei Projekterstellung durch VSTO aktualisiert

73 Verknüpfung Dokument – Assembly
Document Property wo Assembly liegt CAS Wenn Web offline, dann lädt Word vom Assembly Cache

74 Komponenten einer VSTO Solution:
Überblick Deployment Click Once Depolyment Komponenten einer VSTO Solution: Quellcode (im Source Safe ) Kompiliertes Assembly auf einem Server Office Dokument Enthält Link zum Assembly auf dem Server Zentrales Update auf dem Server

75 VSTO 2003 Demo Security & Deployment

76 Ziemlich wenig bis jetzt Hilft bei einigen Details bis jetzt
Fazit Ziemlich wenig bis jetzt Hilft bei einigen Details bis jetzt Fast das Gleiche kann auch ohne VSTO mit normalem COM Interop erreicht werden Der große Wurf wird erst mit der nächsten Version kommen Aufgaben Bereich / Task pane Offline Daten / Data Island u.a.

77 Jetzt gehts erst richtig los
Microsoft Office System 2003 VSTO 2005 Beta 1 Jetzt gehts erst richtig los

78 Office Professional Edition 2003
VSTO Roadmap Word and Excel hosted in VS IDE View controls ActionsPane Schema-based programming model Server-accessible data island Visual Studio projects for Word and Excel Document-centric customizations Version 2005 Version 2003 Visual Studio .NET 2003 Visual Studio 2005 Office Professional Edition 2003

79 Neue Designer 1. Drag+Drop onto Designer
2. Designer-generated managed classes 3. First-class managed citizens

80 Programmierbare TaskPane
1. Design a UserControl 2. Add control behaviour 3. Add the control to the ActionsPane

81 So schauts dann aus...

82 XML Knoten und die TaskPane
2. Map XML schema 1. Design multiple UserControls 3. Code UserControl behaviour

83 Demo Die TaskPane

84 Dateninseln im Dokument
1. Attribute the DataSet as Cached 2. The DataSet is Cached as XML in the doc Vorteile Office Dokumente auf dem Server verarbeiten Offline Modus

85 Data Islands auf dem Server
Keine Officeinstallation auf dem Server ServerDocument doc = new ServerDocument("expenses.xls"); CachedDataItem cdi = _ doc.CachedDataManifest.Views["Sheet1"].CachedData["Expenses"]; cdi.Xml = "new xml string";

86 Microsoft Office Professional 2003
VS Tools für Office 2005 VSTO Assembly Data Island Web Services Schemas Client VSTO Runtime .NET Framework LoB Data Microsoft Office Professional 2003 Windows Client Deployment Server

87 Data Island Zugriff auf dem Server
VSTO 2005 Data Island Zugriff auf dem Server Data Cache Data Island VSTO ServerDocument Assembly Server-side Assembly Server .NET Framework Windows Server

88 Kontextbezogene Hilfe
Microsoft Office System 2003 Smart Tags Kontextbezogene Hilfe

89 Verknüpfen Text in Dokumenten mit Geschäftsprozessen
Was sind SmartTags? Verknüpfen Text in Dokumenten mit Geschäftsprozessen Smart Tag Action Button Lila gepunktete Linie: Smart Tag Kennzeichnung

90 Entwicklung von Smart Tags
Microsoft Office Smart Tag List (MOSTL) Für “einfache” Smart Tags Leichte Entwicklung und Deployment Können automatisch aktualisiert werden Smart Tag API Alle Möglichkeiten des .Net Frameworks Programmierung (COM-Interface) C#, VB.NET, C++ oder VB6 .Net Applikationen verwenden COM Interop oder VSTO Loader Benötigen Setup (Einträge in die Registry)

91 Erzeugen einer XML Datei
MOSTL Erzeugen einer XML Datei C:\Programme\Gemeinsame Dateien\Microsoft Shared\Smart Tag\LISTS\1031 <FL:smarttaglist xmlns:FL="urn:schemas-microsoft-com:smarttags:list"> <FL:smarttag type="urn:lamborghini-com:cars#car"> <FL:caption>Lamborghini Cars</FL:caption> <FL:terms> <FL:termlist>350, 400, Countach, Diablo, Espada, Gallardo, Islero, Jalpa, Jarama, LM002, Miura, Murcielago, Silhouette, Urraco</FL:termlist> </FL:terms> <FL:actions> <FL:action id="Information"> <FL:caption>&View Information</FL:caption> <FL:url> </FL:action> </FL:actions> </FL:smarttag> </FL:smarttaglist>

92 Dll – Projekt (Klassenbibliothek)
COM – API - SmartTagLib Dll – Projekt (Klassenbibliothek) Verweis auf Microsoft Smart Tags 2.0 Type Library COM Bibliothek recognizer Klasse implementieren ISmartTagRecognizer(2) ProgID und GUID Attribute action Klasse implementieren ISmartTagAction(2) [ProgId("MlbSmartTag.Recognizer"), GuidAttribute("90D62E8D-79E F-BF3EC133698D"), ComVisible(true)] public class Recognizer : ISmartTagRecognizer2, ISmartTagRecognizer { }

93 Assembly Version konfigurieren
COM – API - SmartTagLib Assembly Version konfigurieren Default ändern von 1.0.* auf einen Wert Zum Debuggen die Start Action auf Word oder Excel setzen Project Properties | Configuration Properties | Debugging | Start Action | … … Start Application (C#) … Start external program (Visual Basic .NET)

94 Smart Tag Programmierung Research Services
Smart Tags Demo Smart Tag Programmierung Research Services

95 Smart Tag Installation
Setup Program installiert Dll Muss registriert werden Als COM Komponente Als Smart Recognizer und Action Selbstregistrierende DLL (ComRegisterFunctionAttribute) Schlüssel bei der Installation erzeugen HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Actions Wenn der VSTO Loader verwendet wird, dann CAS!

96 Download Smart Tag Developer Tools
Smart Tag Explorer Zeigt an, welche Smart Tags auf einem Rechner aktiv sind Recognize Tester Ermöglicht das Testen, ob ein Smart Tag bestimmte Tokens erkennt

97 Smart Tag Developer Tools
Smart Tags Demo Smart Tag Developer Tools

98 Information Bridge Framework
Office Dokumente mit verschiedenen LOB – Daten verknüpfen

99 Find Customer Account Rep
Warum IBF ? s und Dokumente beziehen sich auf Geschäfts-Entitäten Kunde, Bestellung, ... Oft befinden sich die Daten in verschiedenen Systemen Es gibt keinen einfachen Weg diese Daten in Beziehung zu setzen Einarbeitung in die Systeme Copy & Paste ist einzige Integration MS Word Task Pane Option1 Child Label Mary : Ford order is late. Please investigate. Find Orders Copy & Paste Find Customer Account Rep Unproduktiv und Fehleranfällig!

100 Warum IBF Verknüpft Office Documente mit Daten Zugriff auf Daten über Webservices Informationen werden komfortabel in der TaskPane angezeigt Wenig Programmieren, deklarativer Ansatz

101 Information Bridge Framework
Demo Was kann IBF

102 IBF-Überblick-Grafik
Smart Clients Web Service-basierende Architektur (SOA) Zentraler Metadaten / GUI Server Runtime für Smart Tag / XML Ereignis Initiierung Windows Forms und Taskpane Unterstützung Web Services Metadata Finance ERP Web Services CRM

103 IBF-Architektur 2 1 4 5 3 Client Server Information Bridge Engine
CAS Interprets “Context” using Metadata Metadata Service 1 User selects “Show Details” from Smart Tag IBF Metadata Store 4 Returns data CRM Information Bridge Engine 3 Call Web Service to retrieve data Smart Tag Displays data in Taskpane 5 Other Data ERP Client Server Information Bridge Framework XML Web Services IBF (Metadata Service) .NET Framework SQL Server 2000 Microsoft Office Professional Edition .NET Framework Windows Client Windows 2003 Server Services

104 IBF-Architekur Office Application Information Bridge IBF - UI
Host Renderer Smart Doc Smart Tag Task Pane Manager IBF Engine Metadata Cache Client Back-end Services XML Instance Data Metadata Metadata Web Service Metadata Designer Existing Web Service Compliant Service (Native) Compliant Service Adapter Compliant Service Adapter BizTalk EAI Workflow Engine Legacy App MS-CRM SAP Siebel Metadata

105 Let‘s walking through the dark forrest …
Information Bridge Framework IBF-Entwicklung Let‘s walking through the dark forrest … Inspiriert durch Vijay Desai. (Sep, 2004)

106 Überblick einer einfachen IBF-Entwicklung
Sorgfältige Planung (Use Cases) Definieren von: Entities (Geschäftsobjekten) Beziehungen der Entities untereinander Views (Darstellung der Geschäftsobjekte) Operations (Welche Aktionen) Erzeugen eines /mehrerer Webservice Nach Möglichkeit IBF-konform (nicht zwingend) XML Strukturen von Entities erzeugen WsdlToMetadata.exe Metadaten mit VS.Net-Metadata-Explorer erzeugen SmartTag entwickeln GUI entwickeln (UserControl), nicht zwingend

107 Planung - Anwendungsfälle
Applikation: GreetingService Anwender öffnet Word Tippt Namen von Freunden ein SmartTag-Recognizer erkennt Namen Anwender ruft SmartTag->Show Detail auf SmartTag-Action ruft IBF auf, übergibt erkannten Anwendernamen IBF ruft Webservices auf und erhält Ergebnis Ergebnis wird in der TaskPane in einem selbstentwickelten UserControl angezeigt

108 Entities, Views, Operations
Entity: Friend Schema <Entity Name="Friend" DefaultReferenceSchemaName="FriendSchema"> <xs:schema elementFormDefault="qualified" xmlns:xs=" <xs:element name="Friend"> <xs:complexType> <xs:attribute name="Name" type="xs:string" use="required"></xs:attribute> </xs:complexType> </xs:element> </xs:schema>

109 Entities, Views, Operations
View: getGreetingMessage Schema <GreetingMessage> <Salutation>Hello</Salutation> <Name>William</Name> </GreetingMessage> <xs:schema elementFormDefault="qualified" xmlns:xs=" <xs:element name="Salutation" type="xs:string"></xs:element> <xs:element name="GreetingMessage"> <xs:complexType> <xs:sequence> <xs:element ref="Salutation"></xs:element> <xs:element ref="Name"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Name" type="xs:string"></xs:element> </xs:schema>

110 Entities, Views, Operations
Operation: GetGreetingMessage <Operation Name="GetGreetingMessage" EntityName="Friend"> <InputSchemas> <SchemaInstance SchemaName="FriendSchema" Index="1" /> </InputSchemas> <OutputSchemas> <SchemaInstance SchemaName="GreetingMessageSchema" Index="1" /> </OutputSchemas> </Operation>

111 Neues Projekt: FriendService Neuer WS: SayHello Zwei neue Klassen für
Der Webservice Neues Projekt: FriendService Neuer WS: SayHello Zwei neue Klassen für Friend-Entity Enthält XML-Attribute GreetingMessage–View ... [XmlRoot("Friend", Namespace="urn-GreetingService-Data")] public class Friend { private string name; [XmlAttribute("Name")] public string Name { get { return this.name; } set { this.name = value; } }

112 Ein ganz normaler Webservice
3. Der Webservice Ein ganz normaler Webservice Testmethode einfügen (siehe Code) [WebService(Name="Greeting Service", Description="A Service to send out greeting messages", Namespace=" public class SayHello : System.Web.Services.WebService { private GreetingMessage greetingMessage; [WebMethod(Description="A method to greet a friend")] public GreetingMessage GetGreetingMessage(Friend aFriend) { greetingMessage = new GreetingMessage(); greetingMessage.Name = aFriend.Name; if (aFriend.Name=="Marcel") { greetingMessage.Salutation = "Hello "; } else { greetingMessage.Salutation = "Guten Tach "; return greetingMessage;

113 Webservice Projekt und Test
Information Bridge Framework Demo Webservice Projekt und Test

114 Zwei Gruppen von Metadaten Daten und Logik
Metadaten anlegen Zwei Gruppen von Metadaten Daten und Logik Webservice Zugriffe Operations, Entities Darstellung Views GUI-Elemente in der TaskPane Neuer Projekttyp in VS.Net

115 Metadaten-Typen Metadata = Ein Projekt der IBF Lösung Entity = Geschäftsobjekt View = eine Ansicht eines Geschäftsobjektes Ports = Quelle für XML, Daten, Schemata, … Schema = XML-Schema Transformation = wandelt XML in anderes XML 

116 Eine Entity kann auf verschiedene Art Dargestellt werden
Entities und Views Eine Entity kann auf verschiedene Art Dargestellt werden Informationen können aus unterschiedlichen Quellen (WebServices) stammen Kunde Finanzen Bestellungen Privates Entity (Author) View (AuthorSummary) View (AuthorRoyaltyData)

117 In IBF gibt es eine ganze Reihe von Metadaten
Überblick Metadaten In IBF gibt es eine ganze Reihe von Metadaten Scope Entity Entity 2 Entity Entity 1 View 1 Relationship View 2 View Locator View Locator Reference Service Operation Instance Service Operation Instance (Output) Schema (Input) Schema Port

118 Relationships Ein Autor hat viele Bücher geschrieben Die Entitäten stehen in Beziehung zu einander So kann der Anwender später ein Drill Down machen

119 Relationships von verschiedenen LOB Systemen
Informationen können aus mehreren LOB’s zusammengesammelt werden Information Worker Office 2003 Relationship in Metadata IBF Engine Metadata Cache Client side Server side Web Service Web Service Pubs database Fulfillment System

120 Metadaten – Geschäftsdaten
Metadata Scope SayHello Entity Friend View GreetingMessage Friend.DefaultViewName = GreetingMessage Port XML und Schema für Friend-Schema Port XML und Schema für GreetingMessage-Schema Zuweisen der Schemata zu Entity und GreetingMessage

121 Metadaten – Der Webservice
Port SOAP für den Webservice anlegen Hier wird die Webreferenz verlinkt Operation für GetGreetingMessage anlegen Port SOAP zuordnen Entity Friend zuordnen

122 Metadata Aktueller Stand der Metadaten Operation Schemata
Port zum Webservice Ports

123 Metadata-Explorer und XML-Datei
Information Bridge Framework Demo Metadata-Explorer und XML-Datei

124 Publishing Metadata

125 Metadata Explorer: The Publish Metadata Dialog Box

126 The Publishing Process
Office 2003 IBF Engine Metadata Cache Information Worker Solution Developer VS .NET Metadata Designer XML File Client side Server side Read Write SQL Server Metadata Services

127 Information Bridge Framework
Demo Publishing

128 Die GUI

129 Die GUI Title Bar Region Caption Region

130 Die GUI – Eine Überschrift (Title bar)
View GreetingMessage Verfügt über MenuItemDefinition – Properties Menüaussehen wird über XML definiert XML kommt aus einer Operation MenuType = 1 (Anzeigen) MenuDefinitionOp…Instance hinzufügen Operation hinzufügen

131 Name des erkannten Freundes anzeigen
Die Operation Name des erkannten Freundes anzeigen Input ist ein Schema vom Typ Friend das auch den Namen (Attribut Name) enthält Menüs müssen ein bestimmtes IBF Schema erfüllen Output der Operation muß ein Schema vom Typ MenuDefinitionSchema Deshalb Operation vom Typ: OperationTransformationAggregation <xs:element name="ViewProperties" type="ViewPropertiesType" xmlns:xs=" <xs:complexType name="ViewPropertiesType" xmlns:xs=" <xs:sequence> <xs:any namespace="##any" processContents="lax" minOccurs="0" /> </xs:sequence> <xs:attribute name="Caption" type="xs:string" use="optional" default="" /> <xs:attribute name="Description" type="xs:string" use="optional" default="" /> </xs:complexType> </xs:element>

132 Die Operation – Wir zeigen eine Überschrift an …
Operation wandelt Friend Input in MenuDefinition Output um Schemata Ports für XML-Text

133 Überschirft Metadaten
Information Bridge Framework Überschirft Metadaten Anzeige der Knoten

134 Aktionen Aktionen bestehen aus Instanzen mehrerer Operationen

135 Aktions Designer: Instanzen von Operationen erzeugen
Action Canvas Metadata Explorer Toolbox

136 Aktions Designer – Parameter
Die Operationen können sequentiell ausgeführt werden Über Transformationsinstanzen können Ein- und Ausgabeparameter zwischen den Operationsinstanzen zugewiesen werden

137 Aktionen testen Build & Execute Action Button
Build & Execute Action Context Menu Item

138 Aktion aus VS heraus testen
Information Bridge Framework Demo Aktion aus VS heraus testen

139 IBF Client Microsoft Office System (InfoPath, Word, Excel, Visio, Outlook) Visual Studio Tools for Office (VSTO) Actions Pane Deep document centric integration with Word and Excel Information Bridge Framework (IBF) Context & Action Services Engine (CAS) Smart Tag driven Windows Forms Can use either use .NET Assemblies or Web Services Server Microsoft Windows Server 2003 IBF uses IIS6 for the reading/writing web services that access the metadata server. SQL Server 2000 Used as the Metadata Server store IBF Metadata Server based on SQL Server 2000 Metadata store is relatively small (~5MB) as it only stores metadata and not data directly.

140 All services reside on a single machine
Server Konfig All services reside on a single machine SQL Server 2000 MDS Read / Write Web Service Authorization Manager Web services are hosted on one or more separate servers MDS Read / Write Web Service Authorization Manager SQL Server 2000 Web Server

141 Client Konfig MDS Read / Write Web Service Authorization Manager
Visual Studio .NET Metadata Designer IBF Client Office 2003 IIS & SQL Server 2000 IIS & SQL Server 2000 MDS Read / Write Web Service Authorization Manager Windows XP Metadata Designer Visual Studio .NET Office 2003 IBF Client

142 Entwicklung wird noch nicht genug unterstützt
Fazit Hohe Lernkurve Sehr gute XML, XSL, XSD, … Kenntnisse ! Entwicklung wird noch nicht genug unterstützt Version 1.5 für QI 2005 geplant ! Unterstützung für Entwickler stark verbessert Zugriff auf beliebige Webservices möglich Metadaten werden einfacher, wenn die Webservices sich „wohlverhalten“ Get und Put für Entitäten, Beziehungen zwischen Entitäten VSTO 2005 bietet ähnliche Funktionalität Leichter für Entwickler mit .net Erfahrung Auf dem Client muss IBF Runtime sein

143 Microsoft Office System 2003
Fazit Und was nun ...?

144 VSTO 2005 wird ein großer Schritt nach vorn
Ergebnisse VBA bleibt VSTO 2005 wird ein großer Schritt nach vorn IBF steckt noch in den Kinderschuhen, hat aber großes Potential Research Services: gutes Aufwand Nutzen Verhältnis Formulare in Word oder InfoPath Je nach Schwerpunkt ISmartDocument ist aufwendig zu programmieren Wird mit VSTO 2005 obsolet VSTO 2003 bringt nicht wirklich Punkte Office Dokumente gewinnen viel durch XML Unterstützung Verbessertes Deployment und Security

145 InfoPath 2003 Toolkit für VS.Net
Info Path mit Assemblies verknüpfen

146 Java Script oder VB Script
InfoPath Entwicklung Java Script oder VB Script Mit dem Toolkit kann auch in .Net entwickelt werden Neues Projekttemplate in VS.Net Info Path- oder Wordformulare? InfoPath muss auf den Clients installiert Der Schwerpunkt bei Infopath liegt auf den Formularen und dem Zugriff auf Datenquellen oder WS Der Schwerpunkt bei Word liegt auf Dokumenten

147 Zuerst VS.Net und dann Office 2003 installieren
Tipps Zuerst VS.Net und dann Office 2003 installieren GAC muss vorhanden sein, wenn Office die PIA’s installiert Dann Office 2003 Professional or Professional Enterprise Edition installieren Andere Versionen unterstützen keine Smart Doc Entwicklung Primary Interop Assemblies bei Office installieren Nicht standardmäßig ausgewählt “Run From My Computer” Option verwenden

148 Alles wird gut  Uff...


Herunterladen ppt "Smarte und verbundene Dokumente mit Office 2003 und .NET entwickeln"

Ähnliche Präsentationen


Google-Anzeigen