Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Client / Server mit Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast C/S.

Ähnliche Präsentationen


Präsentation zum Thema: "Client / Server mit Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast C/S."—  Präsentation transkript:

1 Client / Server mit Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast C/S

2 Teil 4: Arbeiten mit C/S Mittwoch, , 16:00 – 17:00 Uhr Mittwoch, , 16:00 – 17:00 Uhr Microsoft Visual FoxPro ist schon seit einem Jahrzehnt ein beliebtes Frontend für Client/Server-Datenbanken wie Microsoft SQL-Server. Über die Hälfte der FoxPro-Entwickler weltweit entwickelt auch oder ausschliesslich Anwendungen auf Basis von MSDE und/oder SQL-Server. In der neuen Version 9.0 von Microsoft Visual FoxPro werden diese Möglichkeiten noch weiter ausgebaut. Unter anderem wurde die Cursor Adaptor-Klasse stark verbessert und weitere Werkzeuge wie der Dataexplorer werden zur Verfügung gestellt. Microsoft Visual FoxPro ist schon seit einem Jahrzehnt ein beliebtes Frontend für Client/Server-Datenbanken wie Microsoft SQL-Server. Über die Hälfte der FoxPro-Entwickler weltweit entwickelt auch oder ausschliesslich Anwendungen auf Basis von MSDE und/oder SQL-Server. In der neuen Version 9.0 von Microsoft Visual FoxPro werden diese Möglichkeiten noch weiter ausgebaut. Unter anderem wurde die Cursor Adaptor-Klasse stark verbessert und weitere Werkzeuge wie der Dataexplorer werden zur Verfügung gestellt.

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

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 früher Nicht von VFP 5.0 oder früher Internationale und US/Canada-Version Internationale und US/Canada-Version Preisunterschied durch Dollarverfall Preisunterschied durch Dollarverfall Technisch identisch Technisch identisch Kein Support / Marketingbudget für US-Version in BRD Kein Support / Marketingbudget für US-Version in BRD dFPUG bietet exklusiv Deutsche Version dFPUG bietet exklusiv Deutsche Version Benutzeroberfläche, Berichtsdesigner, Werkzeuge Benutzeroberfläche, Berichtsdesigner, Werkzeuge

5 Zum Warmlaufen: DataExplorer Vorstellung: Neues Werkzeug DataExplorer Vorstellung: Neues Werkzeug DataExplorer Aufrufbar aus der Taskpane oder direkt Aufrufbar aus der Taskpane oder direkt Datenzugriff (Ersatz für Enterprise Manager) Datenzugriff (Ersatz für Enterprise Manager) Codegenerierung Codegenerierung Anpassbarkeit direkt oder über Quellcode Anpassbarkeit direkt oder über Quellcode Ab VFP 9.0 SP1: evtl. freie Mitlieferbarkeit Ab VFP 9.0 SP1: evtl. freie Mitlieferbarkeit

6 Die Idee Eine Anwendung soll so erstellt werden, dass beim Kunden entschieden werden kann, ob mit einer VFP- Datenbank oder mit einem SQL Server gearbeitet werden soll. Eine Anwendung soll so erstellt werden, dass beim Kunden entschieden werden kann, ob mit einer VFP- Datenbank oder mit einem SQL Server gearbeitet werden soll. Alle Formulare und Klassen müssen unabhängig von der Datenquelle sein. Alle Formulare und Klassen müssen unabhängig von der Datenquelle sein.

7 Die Möglichkeiten Remote Views Remote Views Basierend auf einer Connection im DBC gespeichert Basierend auf einer Connection im DBC gespeichert SPT (SQL Pass Through) SPT (SQL Pass Through) Native Datenbank- oder ODBC-Syntax Native Datenbank- oder ODBC-Syntax Beliebige Befehle/Scripts verarbeitbar Beliebige Befehle/Scripts verarbeitbar (Fast) vollständige Kontrolle über Befehlsausführung (Fast) vollständige Kontrolle über Befehlsausführung Für normale Anwendungsfälle eher umständlich Für normale Anwendungsfälle eher umständlich Nichts für die einfache Portierbarkeit Nichts für die einfache Portierbarkeit CursorAdapter CursorAdapter

8 Remote Views vs. CursorAdapter Remote View und Connection im DBC gespeichert Remote View und Connection im DBC gespeichert Nachteil: Nachteil: DBC muss verwendet werden DBC muss verwendet werden Verbindungsinformationen im Klartext lesbar (!) Verbindungsinformationen im Klartext lesbar (!) CursorAdapter als programmatische oder visuelle Klasse in die Exe-Datei eingebunden CursorAdapter als programmatische oder visuelle Klasse in die Exe-Datei eingebunden Zur Laufzeit beliebig konfigurierbar Zur Laufzeit beliebig konfigurierbar Mit DBC und Remote Datenbanken einsetzbar Mit DBC und Remote Datenbanken einsetzbar Vererbung möglich für bessere Wartbarkeit Vererbung möglich für bessere Wartbarkeit

9 Vorteile SQL Server Verfügbarkeit Verfügbarkeit Clients haben keinen Einfluss auf die Serverdatenbank Clients haben keinen Einfluss auf die Serverdatenbank Wartungsaufgaben und Backup im laufenden Betrieb Wartungsaufgaben und Backup im laufenden Betrieb Datensicherheit Datensicherheit Datenbank ist vor direktem Zugriff geschützt Datenbank ist vor direktem Zugriff geschützt Security-Modell Security-Modell Skalierbarkeit Skalierbarkeit

10 Nachteile SQL Server Betreuungsaufwand Betreuungsaufwand Qualifiziertes Betreuungspersonal notwendig Qualifiziertes Betreuungspersonal notwendig Einzelne Tabellen können nicht kopiert oder ersetzt werden Einzelne Tabellen können nicht kopiert oder ersetzt werden Lizenzkosten Lizenzkosten Oder kostenlos für den Einstieg: Oder kostenlos für den Einstieg: SQL Server Desktop Engine (MSDE) SQL Server Desktop Engine (MSDE) SQL Server 2005 Express SQL Server 2005 Express Oder VAR-Vertrag mit Microsoft Oder VAR-Vertrag mit Microsoft

11 Optimierungsmöglichkeiten DBF Verzeichniskomprimierung (+10% Performance!) Verzeichniskomprimierung (+10% Performance!) Virusfilter für Endungen abschalten Virusfilter für Endungen abschalten Verzicht auf Verschlüsselung (siehe oben) Verzicht auf Verschlüsselung (siehe oben) Verzicht auf Indizes mit wenig Unterscheidung Verzicht auf Indizes mit wenig Unterscheidung Abschaltung Opportunistic Locking Abschaltung Opportunistic Locking Hardware Hardware Mehrere / schnellere Netzwerkkarten Mehrere / schnellere Netzwerkkarten User auf Stränge verteilen (z.B. 10 User/Strang) User auf Stränge verteilen (z.B. 10 User/Strang) Gute HD-Controller mit viel Cache Gute HD-Controller mit viel Cache (notfalls) Verteilung von DBF und CDX auf versch. Festplatten (notfalls) Verteilung von DBF und CDX auf versch. Festplatten

12 Querverweise Schützen einer Tabelle in einem DBC Schützen einer Tabelle in einem DBC Verwendung von Datenbankcontainerereignissen Verwendung von Datenbankcontainerereignissen Schützen von VFP Daten Schützen von VFP Daten Verhindert Sichtbarkeit des Datenverzeichnisses und somit Zugriff durch Endanwender! Verhindert Sichtbarkeit des Datenverzeichnisses und somit Zugriff durch Endanwender! Die Normalisierung von Daten Die Normalisierung von Daten generell und immer sinnvoll und notwendig generell und immer sinnvoll und notwendig

13 Upsizing VFP Upsizing Wizard VFP Upsizing Wizard Update für SQL-Server 2005 angekündigt Update für SQL-Server 2005 angekündigt xCase (und andere Tools) xCase (und andere Tools) Gute VFP-Unterstützung Gute VFP-Unterstützung Möglichkeit zur Massenänderung (DBFs!) Möglichkeit zur Massenänderung (DBFs!) Ankündigung in eigener Sache Ankündigung in eigener Sache VFX Upsizing Wizard VFX Upsizing Wizard

14 Die Lösung CursorAdapter CursorAdapter Vorteile: Vorteile: Klasse – Vererbung, Eigenschaften, Methoden Klasse – Vererbung, Eigenschaften, Methoden Erstellter Cursor ähnlich Ansicht Erstellter Cursor ähnlich Ansicht Einheitlicher Datenzugriff Einheitlicher Datenzugriff Datenzugriff auf DBC und SQL Server möglich Datenzugriff auf DBC und SQL Server möglich Umschaltbarkeit zur Laufzeit Umschaltbarkeit zur Laufzeit Typkonvertierung möglich Typkonvertierung möglich Builder in VFP vorhanden -> Beispiel Builder in VFP vorhanden -> Beispiel

15 Wie macht man es richtig? CursorAdapter-Klasse verwenden CursorAdapter-Klasse verwenden ConnectionManager ConnectionManager ConnectionManager liest Datenbankinformationen aus Konfigurationsdatei ConnectionManager liest Datenbankinformationen aus Konfigurationsdatei Wichtig: CursorAdapter-Funktionalität unbedingt in einer Klasse speichern -> keine Änderung in der Datenumgebung von Formularen beim Wechsel der Datenquelle Wichtig: CursorAdapter-Funktionalität unbedingt in einer Klasse speichern -> keine Änderung in der Datenumgebung von Formularen beim Wechsel der Datenquelle

16 Programmstart Im Init Ereignis des Anwendungsobjekts wird der ConnectionManager instanziiert Im Init Ereignis des Anwendungsobjekts wird der ConnectionManager instanziiert Aus einer verschlüsselten Tabelle werden die Datenbankinformationen gelesen Aus einer verschlüsselten Tabelle werden die Datenbankinformationen gelesen Beim Instanziieren eines CursorAdapters wird vom ConnectionManager eine Connection geholt Beim Instanziieren eines CursorAdapters wird vom ConnectionManager eine Connection geholt Die CursorAdapter-Klasse verwendet die Informationen des ConnectionManagers Die CursorAdapter-Klasse verwendet die Informationen des ConnectionManagers (Der gezeigte Code ist frei downloadbar)

17 CursorAdapter Klasse Herstellen der Verbindung zur Datenbank über den ConnectionManager Herstellen der Verbindung zur Datenbank über den ConnectionManager Holen von ID-Werten Holen von ID-Werten Wartbarkeit Wartbarkeit Eingriffsmöglichkeit an vielen Stellen Eingriffsmöglichkeit an vielen Stellen BeforeUpdate, AfterUpdate BeforeUpdate, AfterUpdate

18 IDs IDs sollten von der Datenbank vergeben werden IDs sollten von der Datenbank vergeben werden CursorAdapter ermöglichen diese IDs nach dem Speichern aus der Datenbank zu holen CursorAdapter ermöglichen diese IDs nach dem Speichern aus der Datenbank zu holen InsertCmdRefreshCmd – wird nach dem Insert ausgeführt – Hier können IDs geholt werden InsertCmdRefreshCmd – wird nach dem Insert ausgeführt – Hier können IDs geholt werden GETAUTOINCVALUE() bei DBC GETAUTOINCVALUE() bei DBC select * from where =GETAUTOINCVALUE() bei SQL Server bei SQL Server

19 Connection Manager Klasse Instanziierung ohne Datenanbindung Instanziierung ohne Datenanbindung Herstellen einer(!) Verbindung beim ersten Bedarf Herstellen einer(!) Verbindung beim ersten Bedarf Auslesen der Datenbankinformationen aus einer Datei möglich Auslesen der Datenbankinformationen aus einer Datei möglich Eine Connection für alle Datenzugriffe der Anwendung Eine Connection für alle Datenzugriffe der Anwendung Verwendung mehrerer Datenbanken in einer Anwendung Verwendung mehrerer Datenbanken in einer Anwendung In einer Eigenschaft jedes CursorAdapters steht der zu verwendende Connection Manager In einer Eigenschaft jedes CursorAdapters steht der zu verwendende Connection Manager

20 Planen einer neuen Anwendung Nur mit CusorAdapter Klasse arbeiten! Nur mit CusorAdapter Klasse arbeiten! Connection Manager verwenden Connection Manager verwenden Vorteile: Vorteile: Es wird nur 1 Verbindung benötigt Es wird nur 1 Verbindung benötigt Austauschbarkeit der Datenquelle Austauschbarkeit der Datenquelle Wechsel von DBC zu SQL möglich Wechsel von DBC zu SQL möglich Entscheidung je Kunde ob DBC oder SQL verwendet werden soll Entscheidung je Kunde ob DBC oder SQL verwendet werden soll

21 Ein Beispiel aus der Praxis VFP VFP VFP? VFP? Venelina´ Fanstastic Pizzas Venelina´ Fanstastic Pizzas

22 VFPizza Customers.scx Customers.scx Erstellt mit dem VFX - Form Builder Erstellt mit dem VFX - Form Builder Steuerlemente zur Eingabe von Parametern hinzugefügt Steuerlemente zur Eingabe von Parametern hinzugefügt CursorAdapter mit dem CA Wizard erstellt CursorAdapter mit dem CA Wizard erstellt SelectCmd um Where-Klausel erweitert SelectCmd um Where-Klausel erweitert

23 VFPizza Orders.scx Orders.scx 1:n Formular 1:n Formular Erstellt mit dem VFX - Form Builder Erstellt mit dem VFX - Form Builder Steuerlement zur Eingabe von Parametern hinzugefügt Steuerlement zur Eingabe von Parametern hinzugefügt CursorAdapter mit dem CA Wizard erstellt CursorAdapter mit dem CA Wizard erstellt SelectCmd um Where-Klausel erweitert SelectCmd um Where-Klausel erweitert

24 Datenquellen bearbeiten Beispiel: Manage Config.vfx Verwaltung des Datenzugriffs sinnvoll / notwendig Verwaltung des Datenzugriffs sinnvoll / notwendig Dialog in der Anwendung beim Kunden praktisch Dialog in der Anwendung beim Kunden praktisch Problemloser Wechsel zwischen DBC und SQL Server Problemloser Wechsel zwischen DBC und SQL Server ConnectionString empfehlenswert ConnectionString empfehlenswert Verschlüsselung mit Kennwort Verschlüsselung mit Kennwort Einstellung mit dem Application Builder Einstellung mit dem Application Builder goprogram.cconfigpassword goprogram.cconfigpassword

25 Test Läuft die Anwendung mit DBC und SQL Server? Läuft die Anwendung mit DBC und SQL Server? Download Beispiel mit Quellcode unter Download Beispiel mit Quellcode unter files90/VFPizza90.zip (kein VFX benötigt!)

26 CursorAdapter Klasse Was ist neu? Maximale Länge eines Eigenschaftwerts bei Eingabe: 8 KB Maximale Länge eines Eigenschaftwerts bei Eingabe: 8 KB Auto-Refresh-Unterstützung Auto-Refresh-Unterstützung InsertCmdRefreshFieldList, InsertCmdRefreshCmd, InsertCmdRefreshKeyFieldList, UpdateCmdRefreshFieldList, …, RefreshTimestamp InsertCmdRefreshFieldList, InsertCmdRefreshCmd, InsertCmdRefreshKeyFieldList, UpdateCmdRefreshFieldList, …, RefreshTimestamp Erweiterte Refresh-Unterstützung Erweiterte Refresh-Unterstützung RecordRefresh(), BeforeRecordRefresh(), … RecordRefresh(), BeforeRecordRefresh(), … Verzögertes Abrufen von Memofeldern Verzögertes Abrufen von Memofeldern DelayedMemoFetch(), FetchMemoDataSource, … DelayedMemoFetch(), FetchMemoDataSource, … Transaktionen bei Update, Insert, Delete: Eigenschaft UseTransactions Transaktionen bei Update, Insert, Delete: Eigenschaft UseTransactions Besseres Konflikthandling ConflictCheckType / ConflictCheckCmd (SP1) Besseres Konflikthandling ConflictCheckType / ConflictCheckCmd (SP1) Neue Eigenschaft TimestampFieldList Neue Eigenschaft TimestampFieldList Lesen und Schreiben von hierarchischen XML Lesen und Schreiben von hierarchischen XML Diverse Erweiterungen bzgl. ADO Diverse Erweiterungen bzgl. ADO

27 Weiterführendes Material Visual FoxPro 9.0 Visual FoxPro 9.0 Updatebuch Updatebuch Roadshow-CD Roadshow-CD Lokalisierungs-CD Lokalisierungs-CD Visual FoxPro 8.0 Visual FoxPro 8.0 Updatebuch Updatebuch Deutsche Hilfedatei Deutsche Hilfedatei Online-Angebote der dFPUG Online-Angebote der dFPUG Forum, Portal, eNewsletter, Homepage, Wiki Forum, Portal, eNewsletter, Homepage, Wiki

28 Teil 5: Arbeiten mit Berichten Mittwoch, , 16:00 – 17:00 Uhr Mittwoch, , 16:00 – 17:00 Uhr Die objektorientierte Entwicklungsumgebung und relationale Datenbank Microsoft Visual FoxPro liefert seit jeher eine Vielzahl von Werkzeugen gleich mit. Besonders beliebt ist dabei der Berichtsgenerator, der lizenzkostenfrei an alle Anwender mitgeliefert werden darf. In der neuen Version 9.0 wurde der Berichtsgenerator grundlegend überarbeitet und massiv erweitert. Behandelt werden die neuen Werkzeuge für die Gestaltung und Anzeige von Berichten durch Entwickler und im neuen geschützten Modus durch Endanwender sowie die neuen Anforderungen an die Auslieferung der Komponenten mit der Anwendung. Die objektorientierte Entwicklungsumgebung und relationale Datenbank Microsoft Visual FoxPro liefert seit jeher eine Vielzahl von Werkzeugen gleich mit. Besonders beliebt ist dabei der Berichtsgenerator, der lizenzkostenfrei an alle Anwender mitgeliefert werden darf. In der neuen Version 9.0 wurde der Berichtsgenerator grundlegend überarbeitet und massiv erweitert. Behandelt werden die neuen Werkzeuge für die Gestaltung und Anzeige von Berichten durch Entwickler und im neuen geschützten Modus durch Endanwender sowie die neuen Anforderungen an die Auslieferung der Komponenten mit der Anwendung.

29 Teil 6: Ausführen von Berichten Mittwoch, , 16:00 – 17:00 Uhr Mittwoch, , 16:00 – 17:00 Uhr Die objektorientierte Entwicklungsumgebung und relationale Datenbank Microsoft Visual FoxPro liefert seit jeher eine Vielzahl von Werkzeugen gleich mit. Besonders beliebt ist dabei der Berichtsgenerator, der lizenzkostenfrei an alle Anwender mitgeliefert werden darf. In der neuen Version 9.0 wurde der Berichtsgenerator grundlegend überarbeitet und massiv erweitert. Behandelt werden die neuen Ausgabe- optionen und die Programmierbarkeit zur Laufzeit in verschiedenen Beispielen sowie die zusätzlich mögliche Erweiterung der Berichtsausgabe in PDF-Dateien. Die objektorientierte Entwicklungsumgebung und relationale Datenbank Microsoft Visual FoxPro liefert seit jeher eine Vielzahl von Werkzeugen gleich mit. Besonders beliebt ist dabei der Berichtsgenerator, der lizenzkostenfrei an alle Anwender mitgeliefert werden darf. In der neuen Version 9.0 wurde der Berichtsgenerator grundlegend überarbeitet und massiv erweitert. Behandelt werden die neuen Ausgabe- optionen und die Programmierbarkeit zur Laufzeit in verschiedenen Beispielen sowie die zusätzlich mögliche Erweiterung der Berichtsausgabe in PDF-Dateien.

30 Vielen Dank! Fragen an oder besser Besuchen Sie unsere Webseiten:


Herunterladen ppt "Client / Server mit Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast C/S."

Ähnliche Präsentationen


Google-Anzeigen