Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Office Programmierung im .Net Zeitalter

Ähnliche Präsentationen


Präsentation zum Thema: "Office Programmierung im .Net Zeitalter"—  Präsentation transkript:

1 Office Programmierung im .Net Zeitalter
Herzlich Willkommen meine Damen und Herren zum Oktober TechTalk. Geschäftsdaten intelligent mit Dokumenten verbinden

2 Kurze Vorstellung Dipl. Inf. Marcel Gnoth, MCSD (marcel@gnoth.net)
Bis Sep. 05 bei der Berliner NTeam GmbH Ab Jan. 06 bei Avanade Deutschland Autor dotnetpro, dotnet-magazin, Developerworld, MSDN SQL Server 2005 Buch, Galileo Computing, Feb ‘06 Sprecher BASTA! + SQLCON SQL Server Days ( Nov. 05 in München) Themen VB6, COM, SQL Server, .Net Verteilte nachrichtenbasierte Informationssysteme MS Message Queueing, SQL Server Service Broker Office System 2003 Integration Reisen in ferne Länder: 

3 Agenda Office Entwicklung – Überblick
Kurzer Ausflug zu den Research Services Office Dokumente und XML Visual Studio Tools für Office (VSTO 2.0) Smart Tags Information Bridge Framework (IBF 1.5) SmartTags

4 Office Entwicklung – Überblick
Programmierung im .NET Zeitalter

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? Weniger neuen Features für den Anwender 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, SQL Server, Oracle, ... Anwender muss in der Lage sein, diese Systeme zu bedienen, auch wenn er/sie nur selten damit arbeitet Schneller Zugriff auf Infos Keine Unterstützung bei der Dateneingabe Viel manuelle Tipparbeit Keine Validierung 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 Elektronische Verarbeitung der Informationen aufwendig Formulare mit Word und Excel erstellen InfoPath ist noch nicht weit verbreitet Prüfen des Inhalts Dokumentformat properitär Austausch mit anderen heterogenen Systemen schwierig Elektronische Verarbeitung (auf Servern) aufwendig Office Installation auf dem Server unerwünscht Verteilung von Office Lösungen Sicherheit

8 Wege zur Lösung Taskpane / Aufgabenbereich
Formulare zur Dateneingabe Nachschlageergebnisse Informationen / Aktionen XML-Dateiformat und XML-Schemata Offenes Dateiformat Kein Freitext mehr Kontextbezogener Zugriff auf TaskPane Serververarbeitung von Dokumenten Smart Tags Aktionen und Infos zu einem selektierten Bereich Webservice Zugriff Nachschlagewerke, Datenaustausch

9 Big View - Technologieübersicht
BizTalk Server Share Point VBA und Webservice Toolkit Office Automation Zugriff auf Webservices keine Programmierung für die TaskPane SQL Server Nachschlagen von Informationen Übernehmen von Daten in das Dokument Zwei einfache Webservices Research Service Nachschlagen von Informationen Interaktion mit LOB Apps TaskPane Datenaustausch Information Bridge Framework XML Dateiformat und Schemata Formulare Prüfen der Daten Serververarbeitung Datenaustausch Kontextsensitive Unterstützung Erkennen von Texten Aufrufen von Aktionen Smart Tags Programmierung der Taskpane Dokumente auf Server verarbeiten Dateninseln für Offline Zugriff Datenaustausch VSTO 2.0

10 Nachschlagewerke für das eigene Unternehmen
Research Services Nachschlagewerke für das eigene Unternehmen

11 Research Services (RS) – Überblick
Recherche von Informationen über Webservices Word, Excel, PPT, Outlook, Publisher, OneNote, Visio, IE Anzeige der Ergebnisse in der TaskPane Übernahme von Daten in das Dokument Office enthält RS Thesaurus und Übersetzung Wörterbuch, Enzyklopädie, Web Suche, Aktienkurse SharePoint durchsuchen Kommerzielle Anbieter Factiva, eLibrary, Gale, WorldLingo

12 Research Beispiele

13 Eigene Research Services entwickeln
Beliebige Sprache, beliebige Plattform für Webservice SOAP Response muß Schemata entsprechen Zwei Methoden Register (oder Registry-Keys direkt schreiben) Query MS Werkzeuge RS - SDK RS - Development Extras (RSDE) Simple Smart Tag Actions Insert, Copy, NewQuery, Hyperlink

14 RS – Schemata

15 RS – Development Extras (RSDE)
Separater Download Research Services Class Library (RSCL) OO-Wrapper für SDK Schemata Erleichtert Programmierung Mit Quellcode RSCL Wizard Neuer Projekttyp Viele Samples Research Services Tracing and Validation Tool (RSTV) zum debuggen

16 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

17 Demo Research Services

18 Fazit Research Services
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) ')

19 XML – Schemata und Office Dokumente
Schluss mit dem Freitext

20 Big View - Technologieübersicht
Office Automation Zugriff auf Webservices keine Programmierung für die TaskPane BizTalk Server Share Point VBA und Webservice Toolkit Nachschlagen von Informationen Übernehmen von Daten in das Dokument Zwei einfache Webservices SQL Server Research Service Nachschlagen von Informationen Interaktion mit LOB Apps TaskPane Datenaustausch Information Bridge Framework XML Dateiformat und Schemata Formulare Prüfen der Daten Serververarbeitung Datenaustausch Kontextsensitive Unterstützung Erkennen von Texten Aufrufen von Aktionen Smart Tags Programmierung der Taskpane Dokumente auf Server verarbeiten Dateninseln für Offline Zugriff Datenaustausch VSTO 2.0

21 XML in Office Offenes XML-Dateiformat
Verknüpfen der Dokumente mit einem XML-Schema GUI-Integration über Aufgabenbereich (auch Outlook ein bisschen) Excel Limitationen Features and limitations of XML Spreadsheet format

22 Freitext

23 Freitext

24 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>

25 Formatierungen

26 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>

27 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 Erzeugen und verändern von Officedokumenten auf dem Server ohne Office WordprocessingML Transform Inference Tool Austausch mit heterogenen Systemen

28 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

29 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

30 XML in Word-Formularen

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

32 Microsoft Office System 2003
Demo Word – XML – Excel

33 Fazit XML-Format eröffnet viele neue Wege Formulare in Word oder Excel
Verarbeiten von Dokumenten ohne Office WordprocessingML Transform Inference Tool Schemavalidierung Datenaustausch Formulare in Word oder Excel InfoPath bietet mehr, ist aber nicht überall nötig Ablage im SharePoint Automatisch in DB eintragen Kontextsensitive Unterstützung für den Anwender folgt …

34 Smarte Dokumente Der klassische Weg

35 Was ist ein smartes Dokument ?
Dokument ist mit einem XML Schema verknüpft Abhängig von der Cursorposition im Dokument passen sich Funktionen der Taskpane an SmartTags erkennen Text im Dokument Anwender kann Informationen und Aktionen für den erkannten Text abrufen Offline Funktionalität

36 Klassischer Weg: ISmartDocument
COM Schnittstelle Von .NET aus unangenehm, wegen COM-Interop viel Late Binding Schnittstelle ist sehr altmodisch Steuerelemente werden über Index angesprochen Vertigo Wrapper für COM-ISmartDocument Kostenlos, mit Quellcode, nicht supported Neue Projekttypen in VS.Net Kapselt das ISmartDocument Interface Objektorientiert Programmierung einfacher Weniger Flexibilität

37 VSTO

38 Big View - Technologieübersicht
Office Automation Zugriff auf Webservices keine Programmierung für die TaskPane BizTalk Server Share Point VBA und Webservice Toolkit Nachschlagen von Informationen Übernehmen von Daten in das Dokument Zwei einfache Webservices SQL Server Research Service Nachschlagen von Informationen Interaktion mit LOB Apps TaskPane Datenaustausch Information Bridge Framework XML Dateiformat und Schemata Formulare Prüfen der Daten Serververarbeitung Datenaustausch Kontextsensitive Unterstützung Erkennen von Texten Aufrufen von Aktionen Smart Tags Programmierung der Taskpane Dokumente auf Server verarbeiten Dateninseln für Offline Zugriff Datenaustausch VSTO 2.0

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

40 Überblick VSTO Strategisches Tool für Office Entwicklung
Office Applikationen haben COM-API VSTO soll Interop erleichtern VSTO 1.0 Nur eine dünne Schicht über der COM API VSTO 2.0 Word und Excel Vorlagen und Designer für VS.Net Outlook Add-ins InfoPath Toolkit Gedacht für professionelle Entwickler VS.Net .Net Framework Wird nicht VBA ersetzen (Für Enduser)

41 Features VSTO 2.0 Integrierte Designer für VS
Voller Zugriff auf .NET Framework, Web Services, ADO .NET, integriertes Debugging Databinding, Data Cache (Offlinedata) Unterstützt managed Controls (Microsoft und Drittanbieter) Neue VSTO “Host” Controls Managed Document Actions Pane & Smart Tags Schemabasiertes Programmiermodell CLR-basiertes Sicherheitsmodell

42 Designer, Controls und die ActionsPane
Word und Excel in Visual Studio

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

44 Controls Managed Controls (WinForms-Controls) Spezielle Host Controls
Erweitern OO-Modelle, DataBinding Host Controls in Excel Chart, ListObject NamedRange, XMLMappedRange Host Controls in Word Bookmark XMLNode, XMLNodes Steuerelemente können dynamisch hinzugefügt und gelöscht werden Ermöglicht interaktive Dokumente, Controls werden abhängig vom Anwenderverhalten erzeugt und entfernt Dim txtData As Microsoft.Office.Tools.Excel.Controls.TextBox txtData = Me.Controls.AddTextBox(10, 10, 100, 100, "txtData") txtData.Text = "Hallo"

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

46 ActionsPane Programmierung
ActionsPane wird sichtbar, wenn Steuerelemente hinzugefügt werden Docking der TaskPane Nicht nur links, auch recht, oben und unten Stackorder der Controls Globals.ThisWorkbook.ActionsPane.Controls.Add (New DateTimePicker) Globals.ThisWorkbook.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop

47 Controls und ActionsPane
Microsoft Office System 2003 Demo Controls und ActionsPane

48 Daten reisen mit dem Dokument
Data-Island Daten reisen mit dem Dokument

49 Data Cache / Data Islands
Dokumente können mit Daten befüllt werden Auf Server oder Client Data Caching erzeugt ein “Data Island” im Dokument Daten sind verfügbar, auch wenn der Client offline ist Klasse ServerDocument bietet Zugriff ohne Office Skalierbar und gut für ASP.NET geeignet VSTO Data-Caching unterstützt Alle Public Properties mit dem Cached-Attribut Klasse muss vom XMLSerializer serialisierbar sein

50 Dateninseln auf dem Client
VSTO Assembly Data Island Web Services Schemas Client VSTO Runtime .NET Framework LoB Data Microsoft Office Professional 2003 Windows Client Deployment Server

51 Dateninseln auf dem Servers
Data Cache Data Island VSTO ServerDocument Assembly Server-side Assembly Server .NET Framework Windows Server

52 Dateninseln im Dokument - Code
Im Dokument “Sonntag”, Blatt “Tabelle1”: Auf dem Server ohne Office füllen <Cached()> Public derKunde As DI_Kunde_Lib.CKunde Dim dataHostItem1 As CachedDataHostItem = _ srvDoc.CachedData.HostItems("Sonntag.Tabelle1") Dim dataItem1 As CachedDataItem = _ dataHostItem1.CachedData("derKunde") If dataItem1.Xml Is Nothing Then Dim derKunde As New ClassLibrary1.CKunde derKunde.Name = "Marcel1" derKunde.Bestellung = "Bier1" dataItem1.SerializeDataInstance(derKunde) srvDoc.Save() srvDoc.Close() End If

53 Microsoft Office System 2003
Demo Data Islands

54 Kontextbezogene Hilfe
Microsoft Office System 2003 VSTO - Smart Tags Kontextbezogene Hilfe

55 Was sind SmartTags? Erkennt Text in Dokumenten
Bietet Aktionen dafür an Smart Tag Action Button Lila gepunktete Linie: Smart Tag Kennzeichnung

56 Entwicklung von Smart Tags
Smart Tag COM-API Alle Möglichkeiten des .Net Frameworks Programmierung (COM-Interface) ISmartTagRecognizer, ISmartTagAction C#, VB.NET, C++ oder VB6 .Net Applikationen verwenden COM Interop und VSTO Loader Benötigen Setup (Einträge in die Registry) HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers SmartTags sind systemweit aktiv in allen SmartTag fähigen Applikationen und Dokumenten Microsoft Office Smart Tag List (MOSTL) Für “einfache” Smart Tags C:\Programme\Gemeinsame Dateien\Microsoft Shared\Smart Tag\LISTS\1031 Leichte Entwicklung und Deployment

57 Managed SmartTags mit VSTO und IBF
VSTO bringt eigene Klassen mit Microsoft.Office.Tools.Word.SmartTag und … Action Microsoft.Office.Tools.Excel.SmartTag und … Action Sehr einfache Managed Entwicklung Aber nur lokal im Dokument gültig, werden im Dokument registriert, nicht systemweit Reicht aber in sehr vielen Fällen aus, ist sogar besser IBF-Client installiert ein generisches SmartTag Spezielle managed IBF-SmartTags implementieren SmartTags sind in allen IBF-fähigen Anwendungen gültig Siehe IBF-Teil

58 VSTO SmartTag Klassen SmartTag Objekt Konstruktor Parameter
Excel: Microsoft.Office.Tools.Excel.SmartTag Word: Microsoft.Office.Tools.Word.SmartTag Namespace ist wichtig, es gibt auch Microsoft.Office.Interop.Word.SmartTag Konstruktor Parameter SmartTag Typ Caption Dim myTag As SmartTag = New SmartTag _ (" "Product Info")

59 Recognizer initialisieren
Recognizer erkennt Texte Terms Collection Statische Strings Achtung, nicht zu viele verwenden Expressions Collection Reguläre Ausdrücke myTag.Terms.Add("Tofu") myTag.Terms.Add("Halumi") myTag.Expressions.Add( _ New System.Text.RegularExpressions.Regex _ ("[A-Z]{1}[0-9]{3}"))

60 Aktionen hinzufügen Menüeinträge für SmartTag-Kontextmenü
Action-Objekte erstellen Excel: Microsoft.Office.Tools.Excel.Action Word: Microsoft.Office.Tools.Word.Action Caption-Property setzen Zum Actions-Array des SmartTags hinzufügen Dim theAction As Action = New Action("Hole es Dir") myTag.Actions = New Action() {theAction}

61 Ereignisse einer Action
BeforeCaptionShow Click AddHandler theAction.Click, New _ ActionClickEventHandler(AddressOf theAction_Click) AddHandler theAction.BeforeCaptionShow, New _ BeforeCaptionShowEventHandler(AddressOf _ theAction_BeforeCaptionShow) Sub theAction_Click(..., ByVal e As ActionEventArgs) Dim txtW As New TextBox txtW.Text = e.Text Globals.ThisDocument.ActionsPane.Controls.Add(txtW) End Sub

62 SmartTag mit Dokument verknüpfen
VSTO-SmartTags sind nur in Dokumenten aktiv, mit denen sie verknüpft sind VstoSmartTags Collection Excel: ThisWorkbook class Word: ThisDocument class 'in Public Class ThisDocument Me.VstoSmartTags.Add(myTag)

63 Microsoft Office System 2003
Demo VSTO SmartTag

64 Verteilung und Sicherheit von VSTO-Anwendungen
Microsoft Office System 2003 VSTO - Deployment Verteilung und Sicherheit von VSTO-Anwendungen

65 Sicherheit in VBA VBA-Code in Dokumenten kann geblockt werden
Low, Medium, & High security modes AuthentiCode Signaturen für Code Authentifizierung Codeausführung: Alles oder nichts Anwender treffen „mutige“ Entscheidungen „Dumm, aber glücklich!“ 

66 Code Access Security (CAS)
VSTO erzeugt normale .Net Assemblies CAS muß auf dem Client konfiguriert sein Caspol.exe oder .Net Framework Konfiguration Assembly Location Assembly Strong Name Keine Entscheidung des Anwenders Kein „Makro aktivieren J/N“ Caspol.exe -ag All_Code url "file://C:/Smart Doc Files/*" FullTrust n NorthwindSmartDocDemo

67 Dokumenten Sicherheit
Dokument auf freigegebener Netzressource UNC SharePoint Dem Dokument muss vertraut werden Office Document Membership Condition Msosec.dll Oder Full Trust für freigegebener Netzressource

68 Verknüpfung Dokument – Assembly
Dokument -> Eigenschaften In VSTO 1.0 Pfad zum Assembly In VSTO 2.0 nur GUID des Runtime Storage Control In VSTO 2.0 ist Application Manifest im Dokument gespeichert Application Manifest verweist auf ein Deployment Manifest auf dem Server Dok. auf dem Client Auf dem Server Deployment Manifest Assembly Dokument Application Manifest

69 Self Updating Process manifest.xml Deploy.xml ExcelApp.dll 1.1
ExcelDoc.xls Deploy.xml <manifest> . . . curVersion=”1.1” </manifest> <manifest> . . . curVersion=”1.0” </manifest> <manifest> <deploy url= version=“1.1”/> <assembly Name=“ExcelApp.dll” updateURL= ExcelApp.dll 1.1 <manifest> <deploy url= version=“1.0”/> ExcelApp.dll 1.0 manifest.xml <manifest> <deploy url= version=“1.0”/> <manifest> <deploy url= version=“1.1”/> <assembly Name=“ExcelApp.dll” updateURL=

70 Verteilungswerkzeuge
Publish Wizard Erstellt Application und Deployment Manifeste Verteilt Lösung an einen bestimmten Ort ( ServerDocument Klasse Methoden und Properties für den Zugriff auf Manifeste MSI Files Manuell msbuild.exe /target:Publish /property:PublishDir =\\PublishSrv\PublishDir\ /property:UpdateUrl =\\DeploymentSrv\DeployDir\ C:\ExcelWorkbook1\ExcelWorkbook1.csproj

71 Offline Zugriff auf Assemblies
Wie kann sichergestellt werden, das der Anwender auch offline mit den Assemblies arbeiten kann? Installation der Assemblies lokal auf dem Computer Internet Explorer Cache IntelliMirror Die Dokumente können auch ohne Verbindung zum Assembly bearbeitet werden

72 VSTO Client Requirements
Office 2003 Professional Edition SP1 Oder Excel/Word/Outlook standalone editions .NET Framework 2.0 VSTO 2005 Runtime Office Primary Interop Assemblies (PIAs) Sicherheitseinstellungen

73 VSTO 2003 Demo Publish Wizard

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

75 Big View - Technologieübersicht
Office Automation Zugriff auf Webservices keine Programmierung für die TaskPane BizTalk Server Share Point VBA und Webservice Toolkit Nachschlagen von Informationen Übernehmen von Daten in das Dokument Zwei einfache Webservices SQL Server Research Service Nachschlagen von Informationen Interaktion mit LOB Apps TaskPane Datenaustausch Information Bridge Framework XML Dateiformat und Schemata Formulare Prüfen der Daten Serververarbeitung Datenaustausch Kontextsensitive Unterstützung Erkennen von Texten Aufrufen von Aktionen Smart Tags Programmierung der Taskpane Dokumente auf Server verarbeiten Dateninseln für Offline Zugriff Datenaustausch VSTO 2.0

76 Find Customer Account Rep
Warum IBF ? s und Dokumente beziehen sich auf Geschäftsentitäten (Kunde, Bestellung, ... ) Daten befinden sich in verschiedenen Systemen Es gibt keinen einfachen Weg diese Daten in Beziehung zu setzen Schulung der Anwender für die Systeme Copy & Paste ist einzige Integration Zugriff auf LoB Daten über Webservices Oder Assemblies Wenig Programmierung,deklarativer Ansatz Dafür gute XML-Kenntnisse erforderlich MS Word Task Pane Option1 Child Label Mary : Ford order is late. Please investigate. Find Orders Copy & Paste Find Customer Account Rep

77 Demo Was kann IBF

78 IBF-Architektur Ablauf eines IBF-Requests 2 1 4 5 3 Client Server
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

79 Installation Server Client
Windows IIS für IBF-Webservices SQL Server MOIBF 1.0 Server Client Office 2003 (mit Primary Interop Assemblies !!!) Visual Studio 2003 MOIBF 1.5 Client (Anwender, Entwickler) MOIBF 1.5 Meta Data Designer (Entwickler) ACHTUNG: verträgt sich nicht gut mit VS2005!  LOB – Webservices

80 IBF-Entwicklung Eine kleines Projekt

81 Eine IBF-Lösung - Übersicht
IBF ist ein Framework für: Zugriff auf Webservices Zugriff auf Assemblies Anzeige von Informationen in der TaskPane Interaktion mit SmartTags Eigentlich keine Programmierung Alles XML-Metadaten (XML, XSD, XSLT, XPath) Ausnahmen SmartTag (Standardlösungen vorhanden) Evtl. UserControls (können vom Wizard generiert werden) Evtl. WinForms Evtl. Webservices für LOB-Zugriff Evtl. Office Automation

82 Vorgehen bei IBF Programmierung
Gründliche Planung (Use Cases) Definition von Artefakten und Entitäten Ansichten (View) der Entitäten (Geschäftsobjekte) Referenzen (Reference) für Zugriff auf Entitäten Beziehungen (RelationShip) zwischen Entitäten Operationen (Operation) Webservices Nach Möglichkeit an IBF angepasst Metadaten mit VS 2003 erstellen Designer + Wizards SmartTag mit VS 2003 programmieren

83 IBF – Views Darstellung einer Entität Views in XML planen
Mind. eine Default-View Mehrere Views für eine Entität möglich Views in XML planen <Customer xmlns="NTeam-Data"> <CustomerID></CustomerID> <CompanyName></CompanyName> <ContactName></ContactName> <ContactTitle></ContactTitle> < ></ > <Region></Region> <Phone></Phone> </Customer> <BookView xmlns=" NTeam-Data"> <ISBN></ISBN> <Title></Title> <SuggestedPrice></SuggestedPrice> </BookView>

84 IBF – References Ähnlich einem Primärschlüssel
Ermöglichen Zugriff auf Daten einer bestimmten Entität ViewLocator verwendet die Referenzen Mehrere Referenzen für eine Entität möglich Mind. eine Default-Referenz Kunde – KundenID Kunde – <CustomerID ID="ALFKI" xmlns=" NTeam-Data " /> <Customer xmlns="NTeam-Data" /> <BookIDReference ISBN=” ” xmlns="NTeam-Data"/>

85 Erstellen von Geschäftsklassen
Nur, wenn Sie die Webservices selber erstellen Für jede View und für jede Referenz eine Klasse erstellen Diese Klassen mit XML-Attributen versehen Werden vom XMLSerializer in das geplante XML serialisiert Diese Klassen dienen als Parameter für die zu erstellenden Webservices

86 Erstellen der Customer-Klasse
Klasse Customer mit XML-Attributen für den XMLSerializer [XmlRoot("Customer",Namespace="Cust...",IsNullable=false)] [XmlType("Customer", Namespace="Customer-Data")] public class Customer { // Customer ID [XmlElement] public string CustomerID { get{return this._CustomerID;} set{this._CustomerID = value;} } // Company Name [XmlElement] public string CompanyName { get{return this._CompanyName;} set{this._CompanyName = value;} } ... }

87 Erstellen der CustomerID-Referenz
Klasse Customer_ID mit XML-Attributen für den XMLSerializer Analoge Klassen für die anderen Referenzen ( , …) //<CustomerID CustomerID="ANYCUSTOMERID" xmlns="Cust..."/> [XmlRoot("CustomerID", Namespace="CustomerID-Data", IsNullable=false)] [XmlType("CustomerID", Namespace="CustomerID-Data")] public class Customer_ID { // Fields private string _CustomerID; // Customer ID Attribute [XmlAttribute] public string CustomerID { get{return this._CustomerID;} set{this._CustomerID = value;} } }

88 Erstellen der Webservices
Beliebige Webservices können eingesetzt und kombiniert werden Eigene Webservices für Datenzugriff Können für IBF optimiert erstellt werden Weniger Transformationen Drei Arten von Webmethoden Get, Put, Act

89 Get- und Put- Methoden Liefern Entitäten als View zurück
Bekommen eine Referenz übergeben Aktualisieren eine Entität im LOB-System mit den View-Daten [WebMethod] public Customer GetCustomer(Customer_ID objCustomerID) { ... } [WebMethod] public void PutCustomer(Customer objCustomer) { ... }

90 Act-Methoden Operationen, die über das Lesen und Schreiben von Entitäten hinausgehen z.B. BestellStatus ändern [WebMethod] public void ChangeOrderStatus(OrderID orderID, OrderStatus status) { ... }

91 Test-Methoden Webservices haben komplexe Datentypen (Klassen) als Parameter (Referenzen,…) Können nicht direkt mit dem IE getestet werden Deshalb Testmethoden mit einfachen Parametern (String, Integer, …) Diese rufen dann die „echten“ Methoden mit ihren komplexen Parametern auf [WebMethod] public Customer GetCustomerTest(string strCustomerID) { ... }

92 Meta Data Explorer und Wizards
Metadaten erzeugen Meta Data Explorer und Wizards

93 Arten von Metadaten MetadataScope = Ein Projekt der IBF Lösung
Entity = Geschäftsobjekt View = eine Ansicht eines Geschäftsobjektes View Locator = Referenz auf Daten einer View Relationship Autoren und Bücher Operations = Befehle Port = Verbindung zur Außenwelt XML-Schemata XSL-Transformationen Scope Entity Entity 2 Entity Entity 1 View 1 Relationship View 2 View Locator View Locator Operation Instance Operation Instance Port Port

94 IBF-Projekt anlegen Neuer Projekttyp in Visual Studio .Net 2003
Enthält nur eine Datei: MSIBFMetadata.xml Metadata Explorer Bearbeiten der MetaDaten MetaData Guidance Wizards

95 Importieren von Meta Daten
XML-Datei mit den MetaDaten ist leer Eine Vorlage aus dem Ressource Kit mit Standardmetadaten importieren MOIBF1.5_Reskit_Templates Microsoft.InformationBridge. Framework.UI.Information BridgeScope.Metadata.xml WSDL vom Webservice Mit Merge zusammenführen

96 Meta Data Explorer Bearbeiten der XML-Datei Zwei Gruppen von Metadaten
Daten und Logik Webservice Zugriffe Operations, Entities Darstellung Regions Views GUI-Elemente in der TaskPane

97 Service Metadata Creation Wizard
Views erstellen Service Metadata Creation Wizard

98 Entity, View und ViewLocator
Über Meta Data Gudiance Window starten Mit Wizard Artefakte erstellen Entity = Customer View = Darstellung der Entity ViewLocator besorgt die Daten für die View

99 Meta Daten Import Service Metadata Creation Wizard
Demo Meta Daten Import Service Metadata Creation Wizard

100 Region Creation Wizard
Die Darstellung

101 Die GUI

102 Region Creation Wizard
Erzeugt eine Region UserControl HTML Erzeugt eine Action Für die Darstellung der Region Bug bei nicht englischem .Net Wizard verwendet XSD.exe und prüft englische Textausgaben!!  Lösung: Ressource-Datei umbennen C:\Programme\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\DE\xsd.resources.dll

103 Action Aktionen sind wie Prozeduren
Verwenden Operation-Instanzen wie Befehle Parameter können zwischen den Befehlen übergeben werden

104 Aktionen testen ControlLib-Assembly mit StrongName versehen
Full Trust für Assembly auf Maschinenebene einstellen Erwarten Input-Parameter wie im Schema der Referenz definiert <CustomerID ID="ALFKI" xmlns="CustomerID-Data" />

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

106 Erstellen einer Region Testen der Action
Demo Erstellen einer Region Testen der Action

107 Publishing Metadata Drei Orte für die Metadaten
XML-Datei in Visual Studio Meta Data Cache auf dem Client Meta Data Server 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

108 Publish Metadata Dialog
URL zum IBF-Write-WebService

109 Testen einer IBF Lösung
Meta Data Projekt als Startprojekt der Solution Word-Prozeß wird gestartet VS.Net hängt sich an den Word-Prozeß Projekteigenschaften: MetaData / Action Debugger Mode MetaData oder Managed BreakPoints im SmartTag-, UserControl-Code BreakPoints im MetaData-Explorer Beim Debuggen werden MetaDaten des VS-Projektes (XML-Datei) verwendet Office Applikationen laden Daten direkt aus dem Cache Bei Problemen: IBF Settings Manager

110 IBF Settings Manager Systemsteuerung -> Verwaltung

111 Testen einer Anwendung
Demo Testen einer Anwendung

112 Ein bisschen Code muss sein!
IBF – Smart Tags Ein bisschen Code muss sein!

113 IBF Smart Tag Projekt IBF geht eigenen Weg bei SmartTags
Dll Projekt, mit Strong Name, FullTrust ! Referenzen auf: Microsoft.InformationBridge.Framework.Interfaces Microsoft.InformationBridge.Framework.UI.Interop COM: Microsoft.Office.Interop.SmartTag (Microsoft Smart Tags 2.0 Type Library) IActionHandler Kontextmenü des SmartTag hat Standardeintrag: „Show Details“ Eigene Kontextmenüeinträge anlegen IRecognizer

114 IRecognizer IRecognizer.Initialize IRecognizer.Recognize
Wird beim Start von Word aufgerufen Laden von Daten, die erkannt werden sollen Achtung: nicht zu viele laden! IRecognizer.Recognize Erkennen von Text, der von Word übergeben wird Word-Paragraph, Excel-Cell, Buchstabe oder Wort,… SmartTag wird in das Dokument eingebettet Spezielles XML-Element: ContextInformation muss IBF Schema entsprechen Enthält angaben über Scope, Entity, View,…

115 ContextInformation-Element
Diese Informationen werden vom SmartTag in das Dokument eingebettet <ContextInformation xmlns=" MetadataScopeName="NorthwindIBF3" EntityName="Customers ViewName="Customer_View" ReferenceSchemaName="Xsd.CustomerID (CustomerID-Data)"> <Reference> <CustomerIDReference <CustomerID CustomerID=“ALFKI" xmlns="CustomerID-Data" /> </CustomerIDReference> </Reference> </ContextInformation>

116 SmartTag mit IBF verknüpfen
Normale SmartTags werden als COM-Komponente registriert HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers IBF Client installiert ein Generic SmartTag Word / Excel kommunizieren mit diesem IBF-SmartTags werden mit der MetaData-Solution verknüpft Werden dann von IBF Engine geladen Generisches SmartTag leitet Aufrufe an IBF-SmartTags weiter Ports und Operations GenericSmartTags: Pfad zum Assembly mit IBF-SmartTag GenericRecognizer: Namespace.Klasse des Recognizers LoadRecognizer-Operation verweist bereits auf GenericSmartTag-Port

117 Fazit Hohe Lernkurve Sehr gute XML, XSLT, XSD, … Kenntnisse ! Unterstützung für Entwickler kann noch ausgebaut werden Version 1.5 seit Februar 2005 Zugriff auf beliebige Webservices möglich Metadaten werden einfacher, wenn die Webservices sich „wohlverhalten“ VSTO 2.0 bietet ähnliche Funktionalität Leichter für Entwickler mit .Net Erfahrung Client braucht IBF Runtime Vorgefertigte IBF-Lösungen, z.B.: Mendocino Von SAP und Microsoft Zugriff auf SAP Daten vom Office aus

118 IBF - Ressourcen dotnet magazin 10/05 + 12/05 IBF Artikel
The Code Project IBF 1.5 Walkthrough - Part 1 IBF 1.5 Walkthrough - Part 2: James Henry, Developing Business Intelligence Solutions Using Information Bridge and Visual Studio .NET, ISBN: IBF-MOC Kurs Ressource Kit NewsGroup: nntp://msnews.microsoft.com/

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

120 Ergebnisse VBA bleibt VSTO 2.0 wird ein großer Schritt nach vorn
IBF steckt ist noch jung, 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 2.0 obsolet Office Dokumente gewinnen viel durch XML Unterstützung Verbessertes Deployment und Security

121 Ressourcen rund um Office und .NET
Office Zealot: MSDN Office: News Groups Redistributable Primary Interop Assemblies Programming Office Applications Using Visual C#

122 Alles wird gut  Uff...


Herunterladen ppt "Office Programmierung im .Net Zeitalter"

Ähnliche Präsentationen


Google-Anzeigen