COM-Server in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual...

Click here to load reader

  • date post

    05-Apr-2015
  • Category

    Documents

  • view

    135
  • download

    21

Embed Size (px)

Transcript of COM-Server in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual...

  • Folie 1
  • COM-Server in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast COM
  • Folie 2
  • Teil 9: Arbeiten mit COM-Server Mittwoch, 12.10.2005, 16:00 17:00 Uhr Mittwoch, 12.10.2005, 16:00 17:00 Uhr Beschreibung: Auch wenn Visual FoxPro optimal fr die schnelle Erstellung von schnellen Benutzer- oberflchen fr Datenbanken ist, also fr die Erstellung klassischer 2-Schichten-Anwendungen, besteht die einfache Mglichkeit, auch COM-Server zu erstellen. Selbige knnen in einem weiteren Schritt in Webservices umgewandelt werden (siehe Folge- WebCast). Wir zeigen Ihnen in diesem Webcast, was dafr notwendig ist. Beschreibung: Auch wenn Visual FoxPro optimal fr die schnelle Erstellung von schnellen Benutzer- oberflchen fr Datenbanken ist, also fr die Erstellung klassischer 2-Schichten-Anwendungen, besteht die einfache Mglichkeit, auch COM-Server zu erstellen. Selbige knnen in einem weiteren Schritt in Webservices umgewandelt werden (siehe Folge- WebCast). Wir zeigen Ihnen in diesem Webcast, was dafr notwendig ist.
  • Folie 3
  • Rainer Becker dFPUG dFPUG Online-Angebote Online-Angebote Loseblattsammlung Loseblattsammlung VFP-Entwicklerkonferenz VFP-Entwicklerkonferenz VFP-Lokalisierung VFP-Lokalisierung Framework Visual Extend Framework Visual Extend MVP, MCP, ISV MVP, MCP, ISV Wizards & Builders GmbH Wizards & Builders GmbH
  • Folie 4
  • Wie bekomme ich VFP ? Update von 6.0, 7.0, 8.0 sowie VS 97 Update von 6.0, 7.0, 8.0 sowie VS 97 Nicht von VFP 5.0 oder frher Nicht von VFP 5.0 oder frher Internationale und US/Canada-Version Internationale und US/Canada-Version Preisunterschied durch Dollarverfall Preisunterschied durch Dollarverfall Technisch identisch Technisch identisch Kein Support / Marketingbudget fr US-Version in BRD Kein Support / Marketingbudget fr US-Version in BRD dFPUG bietet exklusiv Deutsche Version dFPUG bietet exklusiv Deutsche Version Benutzeroberflche, Berichtsdesigner, Werkzeuge Benutzeroberflche, Berichtsdesigner, Werkzeuge
  • Folie 5
  • Vortragsthemen COM Allgemein COM Allgemein COM-Objekt / OLEPublic COM-Objekt / OLEPublic Erstellung von EXE oder DLL Erstellung von EXE oder DLL Type Library / Dokumentation Type Library / Dokumentation Erstellung Erstellung Registrierung Registrierung Auslieferung Auslieferung Programmierhinweise Programmierhinweise
  • Folie 6
  • Component Object Model COM (Component Object Model) ist ein Microsoft Standard, der es anderen Applikationen, wie zum Beispiel Active Server Pages oder Microsoft Office erlaubt, auf Funktionalitt der eigenen Applikation zuzugreifen COM (Component Object Model) ist ein Microsoft Standard, der es anderen Applikationen, wie zum Beispiel Active Server Pages oder Microsoft Office erlaubt, auf Funktionalitt der eigenen Applikation zuzugreifen Man kann jedem Client, der COM-Objekte ansprechen kann, ber COM beliebige Funktionalitt zur Verfgung stellen Man kann jedem Client, der COM-Objekte ansprechen kann, ber COM beliebige Funktionalitt zur Verfgung stellen Dies gilt also bi-direktional (von/aus VFP) Dies gilt also bi-direktional (von/aus VFP)
  • Folie 7
  • Bekannte COM-Server I Microsoft Word und Microsoft Excel Microsoft Word und Microsoft Excel VFP kann auf diese Applikationen als Client problemlos zugreifen, oWord= createobject(Word.Application) VFP kann auf diese Applikationen als Client problemlos zugreifen, oWord= createobject(Word.Application) Die Funktionalitt eines COM-Servers kann man im VFP Objekt Browser sehen Die Funktionalitt eines COM-Servers kann man im VFP Objekt Browser sehen Intellisense untersttzt VFP bzgl. der bentigten Methoden und Eigenschaften z.B. local oExcel as Excel.application Intellisense untersttzt VFP bzgl. der bentigten Methoden und Eigenschaften z.B. local oExcel as Excel.application
  • Folie 8
  • Bekannte COM-Server II Der COM Client (z.B. der Object Browser) kann die verfgbare Funktionalitt eines COM-Servers ber die sogenannte Type Library erfahren Der COM Client (z.B. der Object Browser) kann die verfgbare Funktionalitt eines COM-Servers ber die sogenannte Type Library erfahren Indem man andere COM-Server in eigenen VFP Projekten verwendet, kann man VFP-Funktionalitt beliebig erweitern. z.B. Excel fr alle Rechenaufgaben einsetzen... Indem man andere COM-Server in eigenen VFP Projekten verwendet, kann man VFP-Funktionalitt beliebig erweitern. z.B. Excel fr alle Rechenaufgaben einsetzen... Das Ansteuern eines anderen COM-Servers nennt man auch OLE-Automation Das Ansteuern eines anderen COM-Servers nennt man auch OLE-Automation
  • Folie 9
  • COM-Objekt COM-Server bentigt ein Objekt OLE-Public COM-Server bentigt ein Objekt OLE-Public Es muss sich nicht um ein Geschftsobjekt handeln Es muss sich nicht um ein Geschftsobjekt handeln Sehr oft sind die eigentlichen Geschftsobjekte nicht wirklich fr einen Aufruf von auen geeignet! Sehr oft sind die eigentlichen Geschftsobjekte nicht wirklich fr einen Aufruf von auen geeignet! Es muss sich um ein Objekt handeln Es muss sich um ein Objekt handeln Zumindest ein Wrapper-Objekt fr Funktionen ist notwendig Zumindest ein Wrapper-Objekt fr Funktionen ist notwendig Basierend auf einer Klasse (Control/Container) Basierend auf einer Klasse (Control/Container) Aufruf via createobject aus anderen Anwendungen Aufruf via createobject aus anderen Anwendungen Methoden/Eigenschaften sind sichtbar/modifizierbar und mssen daher geschtzt werden (siehe unten) Methoden/Eigenschaften sind sichtbar/modifizierbar und mssen daher geschtzt werden (siehe unten)
  • Folie 10
  • OLE Public / Erstellungsoptionen
  • Folie 11
  • EXE / DLL (single/multi) Ein In-Process COM-Server ist eine DLL welche im Speicherbereich des Clients instanziiert wird. Diese COM Server Art kann keine direkte Interaktion mit dem User Interface haben OLE Fehler wird erzeugt Ein In-Process COM-Server ist eine DLL welche im Speicherbereich des Clients instanziiert wird. Diese COM Server Art kann keine direkte Interaktion mit dem User Interface haben OLE Fehler wird erzeugt Single Threaded: Jede Clientanwendung erhlt eine eigene Instanz des COM Servers Single Threaded: Jede Clientanwendung erhlt eine eigene Instanz des COM Servers Multi Threaded: Verschiedene Clientanwendung knnen sich die gleiche Instanz des COM Servers teilen Multi Threaded: Verschiedene Clientanwendung knnen sich die gleiche Instanz des COM Servers teilen Details beziehen sich auf Einsatz der COM Server unter MTS/COM+ Details beziehen sich auf Einsatz der COM Server unter MTS/COM+ Ein Out-of-Process COM-Server ist eine EXE, welche in einem eigenen Speicherbereich luft. Ein Out-of-Process COM-Server ist eine EXE, welche in einem eigenen Speicherbereich luft. Dieser COM-Server kann ein User Interface haben! Dieser COM-Server kann ein User Interface haben!
  • Folie 12
  • Type Libraries Die Type Library ist eine binre Datei welche alle ffentlichen Klassen des COM Servers mit deren Methoden, Attributen und Events beschreibt. Eine Type Library kann vorliegen als: Die Type Library ist eine binre Datei welche alle ffentlichen Klassen des COM Servers mit deren Methoden, Attributen und Events beschreibt. Eine Type Library kann vorliegen als: Ein eigene binre Datei (.TLB,.OLB) Ein eigene binre Datei (.TLB,.OLB) Integriert in eine DLL Integriert in eine DLL In eine EXE hineinkompiliert In eine EXE hineinkompiliert In ein ActiveX Control integriert In ein ActiveX Control integriert Wenn Sie ein Projekt mit OLEPUBLIC Klassen unter VFP kompilieren erhalten Sie 3 Dateien: Wenn Sie ein Projekt mit OLEPUBLIC Klassen unter VFP kompilieren erhalten Sie 3 Dateien: Die DLL oder EXE mit dem Projektnamen Die DLL oder EXE mit dem Projektnamen Eine Type Library (.TLB) Eine Type Library (.TLB) Eine Registry Datei (.VBR) Eine Registry Datei (.VBR)
  • Folie 13
  • COM-Server Dokumentation Andere Entwickler welche Ihre Komponenten verwenden, erhalten nur die Information welche Sie in der Description (Beschreibung) abgelegt haben (Klasse, Attribute, Methoden) Andere Entwickler welche Ihre Komponenten verwenden, erhalten nur die Information welche Sie in der Description (Beschreibung) abgelegt haben (Klasse, Attribute, Methoden) COM Server Methoden sollten daher in der Beschreibung enthalten: COM Server Methoden sollten daher in der Beschreibung enthalten: Beschreibung der zu bergebenden Parameter Beschreibung der zu bergebenden Parameter High-Level Beschreibung der Methode High-Level Beschreibung der Methode Was macht die Methode Was macht die Methode Beschreibung des Return Wertes Beschreibung des Return Wertes
  • Folie 14
  • Bessere Dokumentation in PRG! COMATTRIB (nur in PRG Dateien): COMATTRIB (nur in PRG Dateien): Festlegen welchen Status eine Property/Methode hat (nFlags bzw [1]) Festlegen welchen Status eine Property/Methode hat (nFlags bzw [1]) Restricted, Hidden, NonBrowsable Restricted, Hidden, NonBrowsable Hilfe String festlegen [2] Hilfe String festlegen [2] Gross/Kleinschreibung erhalten (Capitalisation) [3] Gross/Kleinschreibung erhalten (Capitalisation) [3] PropertyTyp angeben [4] PropertyTyp angeben [4] Anzahl Parameter [5] Anzahl Parameter [5] Diese Einstellungen wandern nur in die TLB (reine Information) und werden nicht enforced Diese Einstellungen wandern nur in die TLB (reine Information) und werden nicht enforced Es erfolgt also keine tatschliche Typprfung o.. Es erfolgt also keine tatschliche Typprfung o..
  • Folie 15
  • Beispiel programmatisch DEFINE CLASS PrgDemo AS Session OLEPUBLIC PROCEDURE GetDateTime RETURN "Timestamp: "+TRANSFORM(DATETIME()) ENDPROC GetDateTime_COMATTRIB =