Erstellen von COM-Servern in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow COM.

Slides:



Advertisements
Ähnliche Präsentationen
Arbeiten mit Berichten in Visual FoxPro 9.0
Advertisements

DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
COM-Server in Visual FoxPro 9.0
Wizards & Builders GmbH ActiveX-Controls Verwendung und Einsatz von ActiveX-Controls unter Microsoft Visual FoxPro.
Erstellen von OLE-Servern
Wizards & Builders GmbH Projektmanager und SourceSafe Arbeiten mit dem Projektmanager von Microsoft Visual FoxPro.
Arbeiten mit SQL in Visual FoxPro 9.0
Wizards & Builders GmbH Übersicht Schulung Übersicht über Schulung für Entwickler unter Microsoft Visual FoxPro.
Wizards & Builders GmbH Distribution von Applikationen Distribution und Installation unter Microsoft Visual FoxPro.
MSDN Webcast Visual Studio 2005 mit Visual FoxPro Jochen Kirstätter Mai 2005 –
Handling und Erstellung von: DLL, EXE, COM, DCOM
OLE/ OLE-Automation mit VFP Einsatz von ActiveX Controls
Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group.
Der VFP Debugger - Coverage und Profiling. © 1999 TMN-Systemberatung GmbH Der VFP Debugger n Neues Aussehen, eigene Task n Erweiterte Möglichkeiten n.
Visual FoxPro 10.0 Visual Extend 10.0
Visual Extend Anwendertreffen 2009 deutschsprachige FoxPro User Group Uwe Habermann, Venelina Jordanova, Fritz Maurhofer, Rainer Becker VFXAWD09.
VFX Schnelle Anwendungs-entwicklung mit Visual FoxPro 9.0 und Visual Extend 9.0 deutschsprachige FoxPro User Group Uwe Habermann Microsoft Visual FoxPro.
Client/Server mit Visual FoxPro 9.0
Arbeiten mit Konstanten in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow CONST.
Arbeiten mit SQL in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow SQL.
Erstellen von WebServices mit Visual FoxPro 9.0
Einführung zur Roadshow zu Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow INTRO.
Eingangsfrage Ordnen Sie die nachfolgenden MCP-Tests in einer sinnvollen Reihenfolge zur Erlangung des MCSD (Microsoft Certified Solution Developer): A)
Visual Extend 9.5ff Most Wanted Features deutschsprachige FoxPro User Group Rainer Becker VFXWISH06.
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Active Extend deutschsprachige FoxPro User Group Rainer Becker VFXAFX06.
Access & Assign Methoden in Visual FoxPro Zuweisungs- und Zugriffs-Methoden.
VFP Class Browser. © 1999 TMN-Systemberatung GmbH Einsatz des Class Browser n Managen von Klassen inklusive, ändern, umbenennen, löschen und umdefinieren.
Visual Extend Was ist wo? deutschsprachige FoxPro User Group Rainer Becker VFXWASWO.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Visual Extend Weitere Features deutschsprachige FoxPro User Group Uwe Habermann VFX 25 D.
Uwe Habermann Venelina Jordanova VFP Code in Silverlight Anwendungen ausführen.
Visual Extend Features für Entwickler deutschsprachige FoxPro User Group Uwe Habermann VFX 05 D.
Visual Extend Anwendertreffen 2006 deutschsprachige FoxPro User Group Uwe Habermann, Peter Herzog, Fritz Maurhofer, Rainer Becker VFXAWD06.
Uwe Habermann VFX 10.0 Visual Extend Anwendungsverteilung.
Visual Extend Application Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 07 D.
Uwe Habermann VFX 11.0 Distribution von Anwendungen Venelina Jordanova
Visual Extend Anwendertreffen 2007 deutschsprachige FoxPro User Group Uwe Habermann, Rainer Becker VFXAWD07.
Visual Extend Anwendertreffen 2008
Visual Extend Produktaktivierung deutschsprachige FoxPro User Group Uwe Habermann VFX 23 D.
Visual Extend Kundeninstallation deutschsprachige FoxPro User Group Uwe Habermann VFX 26 D.
YouTube5 .0 Projektpräsentation
ODBC (Open Database Connectivity)
Herzlich Willkommen zum VFX-Anwendertreffen! deutschsprachige FoxPro User Group Rainer Becker Visual Extend 9.0 Anwendertreffen 2005 INTRO.
Visual Extend Features der generierten Anwendung für Endbenutzer deutschsprachige FoxPro User Group Uwe Habermann VFX 04 D.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Developer Day Office APPs entwicklen Simon Amrein Trivadis AG Die ersten Schritte in eine neue Office-Welt.
Visual Extend CTableForm Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 08 D.
Visual Extend CursorAdapter deutschsprachige FoxPro User Group Uwe Habermann VFX 18 D.
Visual Extend CDataFormPage Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 09 D.
Visual Extend CPickAlternate Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 14 D.
Visual Extend Download, Installation, Registrierung deutschsprachige FoxPro User Group Uwe Habermann VFX 01 D.
Visual Extend Mandantenfähigkeit deutschsprachige FoxPro User Group Uwe Habermann VFX 22 D.
Visual Extend CPickAlterTextbox Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 16 D.
Visual Extend CPickTextbox Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 15 D.
Visual Extend Lokalisierung deutschsprachige FoxPro User Group Uwe Habermann VFX 24 D.
Visual Extend CPickField Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 13 D.
Visual Extend Application Wizard deutschsprachige FoxPro User Group Uwe Habermann VFX 06 D.
Visual Extend COneToMany Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 10 D.
Visual Extend CTreeviewForm Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 11 D.
Visual Extend Parent/Child Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 17 D.
Visual Extend CDataFormPage-Formulare mit CursorAdapter deutschsprachige FoxPro User Group Uwe Habermann VFX 19 D.
Uwe Habermann Venelina Jordanova Übernahme der Visual FoxPro Geschäftslogik.
Uwe Habermann Venelina Jordanova Schreiben von Visual FoxPro Code in der Oberfläche.
CGI (Common Gateway Interface)
Oliver Spritzendorfer Thomas Fekete
Office in Java 2. Info-Point Urs Frei.
MTS Microsoft Transaction Server Martin Basziszta
 Präsentation transkript:

Erstellen von COM-Servern in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow COM

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 Funktionalität 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 Funktionalität der eigenen Applikation zuzugreifen Man kann jedem Client, der COM-Objekte ansprechen kann, über COM beliebige Funktionalität zur Verfügung stellen Man kann jedem Client, der COM-Objekte ansprechen kann, über COM beliebige Funktionalität zur Verfügung stellen Dies gilt also bi-direktional (von/aus VFP) Dies gilt also bi-direktional (von/aus VFP)

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 Funktionalität eines COM-Servers kann man im VFP Objekt Browser sehen Die Funktionalität eines COM-Servers kann man im VFP Objekt Browser sehen Intellisense unterstützt VFP bzgl. der benötigten Methoden und Eigenschaften z.B. local oExcel as Excel.application Intellisense unterstützt VFP bzgl. der benötigten Methoden und Eigenschaften z.B. local oExcel as Excel.application

Bekannte COM-Server II Der COM Client (z.B. der Object Browser) kann die verfügbare Funktionalität eines COM-Servers über die sogenannte Type Library erfahren Der COM Client (z.B. der Object Browser) kann die verfügbare Funktionalität eines COM-Servers über die sogenannte Type Library erfahren Indem man andere COM-Server in eigenen VFP Projekten verwendet, kann man VFP-Funktionalität beliebig erweitern. z.B. Excel für alle Rechenaufgaben einsetzen... Indem man andere COM-Server in eigenen VFP Projekten verwendet, kann man VFP-Funktionalität beliebig erweitern. z.B. Excel für 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

COM-Objekt COM-Server benötigt ein Objekt OLE-Public COM-Server benötigt ein Objekt OLE-Public Es muss sich nicht um ein Geschäftsobjekt handeln Es muss sich nicht um ein Geschäftsobjekt handeln Sehr oft sind die eigentlichen Geschäftsobjekte nicht wirklich für einen Aufruf von außen geeignet! Sehr oft sind die eigentlichen Geschäftsobjekte nicht wirklich für einen Aufruf von außen geeignet! Es muss sich um ein Objekt handeln Es muss sich um ein Objekt handeln Zumindest ein Wrapper-Objekt für Funktionen ist notwendig Zumindest ein Wrapper-Objekt für 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 müssen daher geschützt werden (siehe unten) Methoden/Eigenschaften sind sichtbar/modifizierbar und müssen daher geschützt werden (siehe unten)

OLE Public / Erstellungsoptionen

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 erhält eine eigene Instanz des COM Servers Single Threaded: Jede Clientanwendung erhält eine eigene Instanz des COM Servers Multi Threaded: Verschiedene Clientanwendung können sich die gleiche Instanz des COM Servers teilen Multi Threaded: Verschiedene Clientanwendung können 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 läuft. Ein Out-of-Process COM-Server ist eine EXE, welche in einem eigenen Speicherbereich läuft. Dieser COM-Server kann ein User Interface haben! Dieser COM-Server kann ein User Interface haben!

Type Libraries Die Type Library ist eine binäre 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 binäre Datei welche alle öffentlichen Klassen des COM Servers mit deren Methoden, Attributen und Events beschreibt. Eine Type Library kann vorliegen als: Ein eigene binäre Datei (.TLB,.OLB) Ein eigene binäre 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)

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

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 tatsächliche Typprüfung o.ä. Es erfolgt also keine tatsächliche Typprüfung o.ä.

Beispiel programmatisch DEFINE CLASS PrgDemo AS Session OLEPUBLIC PROCEDURE GetDateTime RETURN "Timestamp: "+TRANSFORM(DATETIME()) ENDPROC GetDateTime_COMATTRIB = COMATTRIB_NONBROWSABLE iAnzahl = 0 DIMENSION iAnzahl_COMATTRIB[4] iAnzahl_COMATTRIB[1] = COMATTRIB_READONLY iAnzahl_COMATTRIB[2] = Anzahl der Einträge && Hilfe iAnzahl_COMATTRIB[3] = iAnzahl && Gross/Kleinschr. iAnzahl_COMATTRIB[4] = Integer && Typ Angabe...

Access/Assign und Parameter Geschützte Methoden / Eigenschaften Geschützte Methoden / Eigenschaften Kleine Schnittstelle: Eigenschaften / Methoden ausblenden Kleine Schnittstelle: Eigenschaften / Methoden ausblenden Extensive Parameterprüfung in Methoden Extensive Parameterprüfung in Methoden Zugriffs-Methoden für Eigenschaften verwenden Zugriffs-Methoden für Eigenschaften verwenden Assign- & Access-Methoden Assign- & Access-Methoden Vartype und gültige Werte (Werteliste, Datum usw.) Vartype und gültige Werte (Werteliste, Datum usw.) Formattierung (Großbuchstaben, Leerzeichen) Formattierung (Großbuchstaben, Leerzeichen) Schreibgeschützte Eigenschaften Schreibgeschützte Eigenschaften Ausschließlich interner Zugriff (hidden property switch) Ausschließlich interner Zugriff (hidden property switch)

Sonstige Vorbereitungen Überprüfung des Startmodus Überprüfung des Startmodus INLIST( _vfp.startmode, 2,3,5 ) Automation Server Unattended Mode ausschalten Automation Server Unattended Mode ausschalten=SYS(2335,1) Fehlerbehandlung integrieren Fehlerbehandlung integrieren=COMRETURNERROR Sollte auch aus Access/Assign-Methoden aufgerufen werden Sollte auch aus Access/Assign-Methoden aufgerufen werden Setzen Sie alle Ihre Einstellungen Setzen Sie alle Ihre Einstellungen Uralt: Strg+OK liefert alle Optionen… Uralt: Strg+OK liefert alle Optionen…

Projektdefinition Hauptprogramm hinzufügen… Hauptprogramm hinzufügen… Testprogramm eignet sich dafür Testprogramm eignet sich dafür Tabellen für Steuerdaten inkludieren Tabellen für Steuerdaten inkludieren Config.fpw inkludieren Config.fpw inkludieren SCREEN = OFF (kein VFP-Desktop sichtbar) SCREEN = OFF (kein VFP-Desktop sichtbar) RESOURCE=OFF (keine Anlage Foxuser.dbf) RESOURCE=OFF (keine Anlage Foxuser.dbf) ALLOWEXTERNAL=ON (zusätzliche config.fpw mögl.) ALLOWEXTERNAL=ON (zusätzliche config.fpw mögl.) Sichtbar schalten sofern sinnvoll Sichtbar schalten sofern sinnvoll

Ausführung des COM-Servers Beispiel in Excel: Beispiel in Excel: Dim loRef as Object Dim loRef as Object On Error Goto SomeError On Error Goto SomeError Set loRef = createobject(exe.obj) Set loRef = createobject(exe.obj) … other operations … other operations Set loRef = Nothing Set loRef = Nothing Excel-Entwickler lieben VFP-Datenzugriff, da er viel einfacher für Sie ist als ODBC/ADO! Excel-Entwickler lieben VFP-Datenzugriff, da er viel einfacher für Sie ist als ODBC/ADO!

TypeLib-Abfrage Der Object Browser (Objektkatalog) kann Type Libraries auslesen und anzeigen Der Object Browser (Objektkatalog) kann Type Libraries auslesen und anzeigen Informationen zu einem COM-Server können per Drag & Drop in VFP übernommen werden Informationen zu einem COM-Server können per Drag & Drop in VFP übernommen werden

Registrierung COM-Server Wenn Sie aus einem VFP Projekt einen COM Server kompilieren, dann werden alle OLE Public Klassen automatisch auf dem lokalen Rechner registriert Wenn Sie aus einem VFP Projekt einen COM Server kompilieren, dann werden alle OLE Public Klassen automatisch auf dem lokalen Rechner registriert Wenn Sie mit den gängigen Installations-tools (Installshield, Wise..) ein Setup erstellen, so werden die COM Komponenten automatisch auf dem Rechner registriert Wenn Sie mit den gängigen Installations-tools (Installshield, Wise..) ein Setup erstellen, so werden die COM Komponenten automatisch auf dem Rechner registriert Sie können dies auch manuell mit Hilfe der Windows Tools RegServer, UnRegServer und RegSrv32 erledigen Sie können dies auch manuell mit Hilfe der Windows Tools RegServer, UnRegServer und RegSrv32 erledigen Wenn VFP nicht installiert ist, muss zuerst die VFP Runtime installiert werden, damit der COM-Server lauffähig ist! Wenn VFP nicht installiert ist, muss zuerst die VFP Runtime installiert werden, damit der COM-Server lauffähig ist!

Auslieferung des COM-Servers Laufzeitverzeichnis enthält Laufzeitverzeichnis enthält.exe.exe VFP9R.DLL, VFP9RENU.DLL VFP9R.DLL, VFP9RENU.DLL GDIPLUS.DLL GDIPLUS.DLL REGSVR32.EXE REGSVR32.EXE MSVCR71.DLL in system32 MSVCR71.DLL in system32 Regsvr32.exe vfp9r.dll Regsvr32.exe vfp9r.dll.exe /regserver.exe /regserver

Querverweise Entwickeln und Debuggen von COM Servern Entwickeln und Debuggen von COM Servern

Vielen Dank! Besuchen Sie unsere Webseiten: