Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Marcel Gnoth - www.gnoth.net Office Programmierung im.Net Zeitalter Geschäftsdaten intelligent mit Dokumenten verbinden.

Ähnliche Präsentationen


Präsentation zum Thema: "Marcel Gnoth - www.gnoth.net Office Programmierung im.Net Zeitalter Geschäftsdaten intelligent mit Dokumenten verbinden."—  Präsentation transkript:

1 Marcel Gnoth - Office Programmierung im.Net Zeitalter Geschäftsdaten intelligent mit Dokumenten verbinden

2 Marcel Gnoth - 2 Kurze Vorstellung Dipl. Inf. Marcel Gnoth, MCSD –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 Marcel Gnoth - 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 Marcel Gnoth - Office Entwicklung – Überblick Programmierung im.NET Zeitalter

5 Marcel Gnoth - 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 Marcel Gnoth - 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 Marcel Gnoth - 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 Marcel Gnoth - 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 –Kontextbezogener Zugriff auf TaskPane –Aktionen und Infos zu einem selektierten Bereich Webservice Zugriff –Nachschlagewerke, Datenaustausch

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

10 Marcel Gnoth - Research Services Nachschlagewerke für das eigene Unternehmen

11 Marcel Gnoth 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 Marcel Gnoth Research Beispiele

13 Marcel Gnoth 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 Marcel Gnoth RS – Schemata

15 Marcel Gnoth 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 –Mit Quellcode Viele Samples Research Services Tracing and Validation Tool (RSTV) zum debuggen

16 Marcel Gnoth 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 Marcel Gnoth - Demo Research Services

18 Marcel Gnoth 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) ') SELECT ProductName, QuantityPerUnit FROM Products WHERE CONTAINS(ProductName, ' FORMSOF (INFLECTIONAL, dry) ')

19 Marcel Gnoth - XML – Schemata und Office Dokumente Schluss mit dem Freitext

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

21 Marcel Gnoth 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 Marcel Gnoth Freitext

23 Marcel Gnoth Freitext

24 Marcel Gnoth Inhalt als XML 3/24/2004 XML Conference (Europe) Role of XML on the Desktop Health Agency % The team comprises great innovators Contact their IT Manager Finance Agency Organize another European tour

25 Marcel Gnoth Formatierungen

26 Marcel Gnoth Formatierung als XML WordML Eigenes Schema HTML ähnlich Keine verschachtelten Tags John Doe Health Agency

27 Marcel Gnoth 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 Marcel Gnoth Hello World - etwas schöner Hello World John Peltonen John Peltonen T04:15:00Z T04:15:00Z SHARP Hello World! Section Properties Namespace Declarations Document Properties

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

30 Marcel Gnoth XML in Word-Formularen

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

32 Marcel Gnoth - Demo Word – XML – Excel Microsoft Office System 2003

33 Marcel Gnoth Fazit XML-Format eröffnet viele neue Wege –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 Marcel Gnoth - Smarte Dokumente Der klassische Weg

35 Marcel Gnoth 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 Marcel Gnoth 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 –http://vertigosoftware.com/wrapperhttp://vertigosoftware.com/wrapper Neue Projekttypen in VS.Net Kapselt das ISmartDocument Interface –Objektorientiert –Programmierung einfacher –Weniger Flexibilität

37 Marcel Gnoth - VSTO

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

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

40 Marcel Gnoth Ü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 Marcel Gnoth 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 Marcel Gnoth - Designer, Controls und die ActionsPane Word und Excel in Visual Studio

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

44 Marcel Gnoth 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 Marcel Gnoth Programmierbare TaskPane 1. Design a UserControl 2. Add control behaviour 3. Add the control to the ActionsPane

46 Marcel Gnoth 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 Marcel Gnoth - Demo Controls und ActionsPane Microsoft Office System 2003

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

49 Marcel Gnoth 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 Marcel Gnoth Dateninseln auf dem Client Windows Client Microsoft Office Professional 2003.NET Framework Schemas Data Island VSTO Runtime Web Services Client VSTO Assembly Deployment Server LoB Data

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

52 Marcel Gnoth Dateninseln im Dokument - Code Im Dokument Sonntag, Blatt Tabelle1: Auf dem Server ohne Office füllen 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 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 Public derKunde As DI_Kunde_Lib.CKunde

53 Marcel Gnoth - Demo Data Islands Microsoft Office System 2003

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

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

56 Marcel Gnoth 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\Sm art 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 Marcel Gnoth 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 Marcel Gnoth VSTO SmartTag Klassen SmartTag Objekt –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 _ ("www.gnoth.net#office", "Product Info")

59 Marcel Gnoth 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 Marcel Gnoth 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 Marcel Gnoth 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 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 Marcel Gnoth 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) 'in Public Class ThisDocument Me.VstoSmartTags.Add(myTag)

63 Marcel Gnoth - Demo VSTO SmartTag Microsoft Office System 2003

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

65 Marcel Gnoth 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 Marcel Gnoth 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 Marcel Gnoth Dokumenten Sicherheit Dokument auf freigegebener Netzressource –UNC –SharePoint Dem Dokument muss vertraut werden –Office Document Membership Condition –http://msdn2.microsoft.com/en-us/library/9w6bd8f1(en-US,VS.80).aspxhttp://msdn2.microsoft.com/en-us/library/9w6bd8f1(en-US,VS.80).aspx –http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=13696http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=13696 –Msosec.dll Oder Full Trust für freigegebener Netzressource

68 Marcel Gnoth 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 AssemblyDeployment Manifest Application Manifest Dokument Dok. auf dem Client Auf dem Server

69 Marcel Gnoth Self Updating Process ExcelDoc.xls manifest.xml ... curVersion= Deploy.xml ... ExcelApp.dll curVersion=

70 Marcel Gnoth Verteilungswerkzeuge Publish Wizard –Erstellt Application und Deployment Manifeste –Verteilt Lösung an einen bestimmten Ort (http://Server/...) 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 Marcel Gnoth 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 Marcel Gnoth 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 Marcel Gnoth - Demo Publish Wizard VSTO 2003

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

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

76 Marcel Gnoth 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 Find Customer Account Rep Find Orders MS WordTask Pane Option1 Child Label Mary : Ford order is late. Please investigate. Copy & Paste

77 Marcel Gnoth - Demo Was kann IBF

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

79 Marcel Gnoth Installation Server –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! –http://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.of fice.informationbridge&mid=f ecd ca41ddhttp://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.of fice.informationbridge&mid=f ecd ca41dd LOB – Webservices

80 Marcel Gnoth - IBF-Entwicklung Eine kleines Projekt

81 Marcel Gnoth 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 Marcel Gnoth 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 Marcel Gnoth IBF – Views Darstellung einer Entität –Mind. eine Default-View –Mehrere Views für eine Entität möglich Views in XML planen

84 Marcel Gnoth 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 –

85 Marcel Gnoth 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 Marcel Gnoth 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 Marcel Gnoth Erstellen der CustomerID-Referenz Klasse Customer_ID mit XML-Attributen für den XMLSerializer Analoge Klassen für die anderen Referenzen ( , …) // [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 Marcel Gnoth 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 Marcel Gnoth 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 Marcel Gnoth 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 Marcel Gnoth 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 Marcel Gnoth - Metadaten erzeugen Meta Data Explorer und Wizards

93 Marcel Gnoth 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 Relationship View 2EntityScopeEntityEntity 2 Operation Instance View Locator View 1 Entity 1 Operation Instance View Locator Port

94 Marcel Gnoth 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 Marcel Gnoth 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 Marcel Gnoth 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 Marcel Gnoth - Views erstellen Service Metadata Creation Wizard

98 Marcel Gnoth 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 Marcel Gnoth - Demo Meta Daten Import Service Metadata Creation Wizard

100 Marcel Gnoth - Region Creation Wizard Die Darstellung

101 Marcel Gnoth Die GUI

102 Marcel Gnoth 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 Marcel Gnoth Action Aktionen sind wie Prozeduren Verwenden Operation-Instanzen wie Befehle Parameter können zwischen den Befehlen übergeben werden

104 Marcel Gnoth Aktionen testen ControlLib-Assembly mit StrongName versehen Full Trust für Assembly auf Maschinenebene einstellen Erwarten Input-Parameter wie im Schema der Referenz definiert

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

106 Marcel Gnoth - Demo Erstellen einer Region Testen der Action

107 Marcel Gnoth Publishing Metadata Drei Orte für die Metadaten –XML-Datei in Visual Studio –Meta Data Cache auf dem Client –Meta Data Server Metadata Services VS.NET Metadata Designer SQL Server Client side Server side Office 2003 IBF Engine Metadata Cache Information Worker Solution Developer ReadWrite XML File

108 Marcel Gnoth Publish Metadata Dialog URL zum IBF-Write-WebService

109 Marcel Gnoth 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 Marcel Gnoth IBF Settings Manager Systemsteuerung -> Verwaltung

111 Marcel Gnoth - Demo Testen einer Anwendung

112 Marcel Gnoth - IBF – Smart Tags Ein bisschen Code muss sein!

113 Marcel Gnoth 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 Marcel Gnoth IRecognizer IRecognizer.Initialize –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 Marcel Gnoth ContextInformation-Element Diese Informationen werden vom SmartTag in das Dokument eingebettet

116 Marcel Gnoth 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 Marcel Gnoth 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 –http://www.sap.com/solutions/mendocino/index.epxhttp://www.sap.com/solutions/mendocino/index.epx

118 Marcel Gnoth IBF - Ressourcen dotnet magazin 10/ /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 Marcel Gnoth - Fazit Und was nun...? Microsoft Office System 2003

120 Marcel Gnoth 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 Marcel Gnoth Ressourcen rund um Office und.NET Office Zealot: MSDN Office: News Groups –http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=16http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=16 Redistributable Primary Interop Assemblies –http://www.microsoft.com/downloads/details.aspx?FamilyId =3C9A983A-AC BA0- D36D67E0F4AD&displaylang=enhttp://www.microsoft.com/downloads/details.aspx?FamilyId =3C9A983A-AC BA0- D36D67E0F4AD&displaylang=en Programming Office Applications Using Visual C# –http://msdn.microsoft.com/office/understanding/vsto/article s/default.aspx?pull=/library/en- us/odc_vsto2005_ta/html/officevstocsharpdev.asphttp://msdn.microsoft.com/office/understanding/vsto/article s/default.aspx?pull=/library/en- us/odc_vsto2005_ta/html/officevstocsharpdev.asp

122 Marcel Gnoth Alles wird gut Uff...


Herunterladen ppt "Marcel Gnoth - www.gnoth.net Office Programmierung im.Net Zeitalter Geschäftsdaten intelligent mit Dokumenten verbinden."

Ähnliche Präsentationen


Google-Anzeigen