Wizards & Wizards & Builders Builders GmbH GmbH Konvertierung FPW 2.6->VFP Konvertierung FPW 2.6->VFP Konvertierung von FoxPro / Konvertierung von FoxPro / Windows Anwendungen nach Windows Anwendungen nach Microsoft Visual FoxPro Microsoft Visual FoxPro
53
Embed
Wizards & Builders GmbH Konvertierung FPW 2.6->VFP Konvertierung von FoxPro / Windows Anwendungen nach Microsoft Visual FoxPro.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Konvertierung von FoxPro / Konvertierung von FoxPro / Windows Anwendungen nachWindows Anwendungen nach
Microsoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Diese Schulung dient der Übersicht über die
Konvertierungsarten und -möglichkeiten von Applikationen
unter FoxPro/Windows nach Microsoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
ThemenübersichtThemenübersicht
Fallstudie aus der PraxisFallstudie aus der Praxis VorüberlegungenVorüberlegungen KonvertierungsansätzeKonvertierungsansätze Minimalistische KonvertierungMinimalistische Konvertierung Hybrider AnsatzHybrider Ansatz Konvertierung BerichteKonvertierung Berichte KonvertierungsassistentKonvertierungsassistent Funktionale KonvertierungFunktionale Konvertierung MaskeneigenschaftenMaskeneigenschaften Nachbearbeitung von MaskenNachbearbeitung von Masken FPW-Wrapper-KlassenFPW-Wrapper-Klassen
Wizards & Wizards & Builders GmbH Builders GmbH
Fallstudie aus der PraxisFallstudie aus der Praxis
Vollständige Konvertierung Vollständige Konvertierung der FPD-Software „Account der FPD-Software „Account View“ nach Microsoft Visual View“ nach Microsoft Visual
FoxProFoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Account View AnwendungAccount View Anwendung
Buchhaltungssoftware in FPD 2.6Buchhaltungssoftware in FPD 2.6 4000 Kunden in 3 Ländern4000 Kunden in 3 Ländern 70 % haben Netzwerklizenzen70 % haben Netzwerklizenzen Beispiele Anwender:Beispiele Anwender:
Royal Dutch ConcertgebouwRoyal Dutch Concertgebouw Pulitzer Hotel (350 Betten)Pulitzer Hotel (350 Betten) Den Hague Police RegionDen Hague Police Region PTT Catering (360 Gebäude)PTT Catering (360 Gebäude) Allianz Europa (SAP + AV)Allianz Europa (SAP + AV)
Wizards & Wizards & Builders GmbH Builders GmbH
Konvertierungs-ZieleKonvertierungs-Ziele
1. Zuverlässigkeit1. Zuverlässigkeit
2. Zuverlässigkeit2. Zuverlässigkeit
3. Zuverlässigkeit3. Zuverlässigkeit
4. Anforderungen Windows95 Logo 4. Anforderungen Windows95 Logo
bei der Datenerfassung wie bei der Datenerfassung wie FP/DOSFP/DOS
6. Erhaltung der Flexibilität für VARs6. Erhaltung der Flexibilität für VARs
Wizards & Wizards & Builders GmbH Builders GmbH
Konvertierungs-PlanungKonvertierungs-Planung
Die Wirklichkeit ist anders als die DemosDie Wirklichkeit ist anders als die Demos In Wirklichkeit wurde die komplexe In Wirklichkeit wurde die komplexe
Funktionalität langsam und inkrementell Funktionalität langsam und inkrementell entwickeltentwickelt
Wie lange dauerte es (wirklich) bis die Wie lange dauerte es (wirklich) bis die Anwendung auf dem heutigen Stand Anwendung auf dem heutigen Stand war?war?
Wie hoch schätzt man Zeit und Kosten Wie hoch schätzt man Zeit und Kosten für Migrationfür Migration
Zuerst kalkulieren!Zuerst kalkulieren!
Wizards & Wizards & Builders GmbH Builders GmbH
Object type Quantity Time TotalList display forms 139 1,5 208,5Setup information forms 72 3,0 216,0One to many forms 6 32,0 192,0Dialog forms 238 0,5 119,0Reports 270 2,0 540,0Procedures/functions 997 0,1 99,7Tables 80 0,5 40,0Menus 98 0,5 49,0"Framework" programs 1 160,0 160,0Installation program 1 80,0 80,0Documentation facelift 1 455,0 455,0Testing 1 1.450,0 1.450,0
Total hours 3.609,2Developer days 451,2Developer weeks 112,8Total development weeks 37,6Total cost 203.017,5
Wizards & Wizards & Builders GmbH Builders GmbH
ImplikationenImplikationen
Kosten von ca. DM 200,000 (mind.!)Kosten von ca. DM 200,000 (mind.!) Kaufen aller verfügb. Bücher zu VFPKaufen aller verfügb. Bücher zu VFP MCP-Test für alle TeammitgliederMCP-Test für alle Teammitglieder Kaufen sämtlicher auch nur Kaufen sämtlicher auch nur
ansatzweise sinnvoller Werkzeugeansatzweise sinnvoller Werkzeuge Kein Geld an der Kein Geld an der
Vorbereitung(szeit) sparen! Vorbereitung(szeit) sparen! Unterstützung der GL einholenUnterstützung der GL einholen
Wizards & Wizards & Builders GmbH Builders GmbH
Vorschläge zur Vorschläge zur VorgehensweiseVorgehensweise
Selbst erstellen oder Kauf eines Selbst erstellen oder Kauf eines fertigen Applikations-Frameworks fertigen Applikations-Frameworks mit Basisklassen und mit Basisklassen und FertigobjektenFertigobjekten
Testweise manuelle Erstellung von Testweise manuelle Erstellung von einigen Masken, Berichten und einigen Masken, Berichten und MenüsMenüs
Negativ:Negativ: Sind notwendigerweise sehr komplexSind notwendigerweise sehr komplex Werden hauptsächlich von Firmen verkauft, Werden hauptsächlich von Firmen verkauft,
deren Schwerpunkt im Bereich Beratung, deren Schwerpunkt im Bereich Beratung, Coaching und Support liegtCoaching und Support liegt
Die positive Seite: Die positive Seite: 75% der Applikation 75% der Applikation konnten konnten unverändert unverändert übernommen übernommen werdenwerden
VFP ist das Ticket VFP ist das Ticket zu „state-of-the-zu „state-of-the-art“-Anwendugnen art“-Anwendugnen bis ins nächste bis ins nächste Jahrhundert!Jahrhundert!
Wizards & Wizards & Builders GmbH Builders GmbH
VorüberlegungenVorüberlegungen
Grundsatzüberlegungen zur Grundsatzüberlegungen zur Konvertierung nachKonvertierung nach
Microsoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Visual FoxProVisual FoxPro
„„State of the art“-Datenbank-State of the art“-Datenbank-ApplikationenApplikationen
Konvertieren vs. Konvertieren vs. NeuschreibenNeuschreiben
Die bestehende AnwendungDie bestehende Anwendung hat mehrere Versionen durchlaufen?hat mehrere Versionen durchlaufen? ist stabil?ist stabil? benötigt keine neue Funktionalität?benötigt keine neue Funktionalität? läuft nicht auf neuen Betriebssystemen?läuft nicht auf neuen Betriebssystemen?
Die Entwickler habenDie Entwickler haben die Möglichkeit, OOP kennenzuleren oderdie Möglichkeit, OOP kennenzuleren oder keine Zeit für neue Entwicklungsmethoden?keine Zeit für neue Entwicklungsmethoden?
Wurden die Werkzeuge verwendet?Wurden die Werkzeuge verwendet? Falls nein: minimalistisch oder neu schreibenFalls nein: minimalistisch oder neu schreiben
Werden FLLs eingesetzt?Werden FLLs eingesetzt? Neu kompilieren unter 32Bit notwendigNeu kompilieren unter 32Bit notwendig
Werden Third-Party-Tools Werden Third-Party-Tools eingesetzt?eingesetzt? Funktionalität evtl. in VFP bereits eingebautFunktionalität evtl. in VFP bereits eingebaut Andernfalls neue Version notwendig - ist diese Andernfalls neue Version notwendig - ist diese
lieferbar und erfordert ggf. Konvertierunglieferbar und erfordert ggf. Konvertierung
Multi-Plattform-fähige Anwendung?Multi-Plattform-fähige Anwendung? Unterstützt: Windows 95 ff., Windows NTUnterstützt: Windows 95 ff., Windows NT Plattformfähigkeit weiterhin notwendig?Plattformfähigkeit weiterhin notwendig? Umsetzung über Internet-Browser?Umsetzung über Internet-Browser?
Upgrade auf Windows95-GUI ?Upgrade auf Windows95-GUI ? Minimalitische Umsetzung nicht möglich..Minimalitische Umsetzung nicht möglich..
Wizards & Wizards & Builders GmbH Builders GmbH
KonvertierungsansätzeKonvertierungsansätze
Verschiedene Verschiedene Konvertierungsansätze von Konvertierungsansätze von
Fallunterscheidung zu VersionFallunterscheidung zu Version NAME-Klausel zu FensternNAME-Klausel zu Fenstern
führt zu Form.Pageframe1.Page1führt zu Form.Pageframe1.Page1 READ-Befehl weiter notwendigREAD-Befehl weiter notwendig
NAME-Klausel zu GET-FeldernNAME-Klausel zu GET-Feldern Arbeiten mit ActivepageArbeiten mit Activepage Anpassung GenScrn (Setup1/2)Anpassung GenScrn (Setup1/2)
Wizards & Wizards & Builders GmbH Builders GmbH
Hybrider AnsatzHybrider Ansatz
Der hybride Ansatz zur Der hybride Ansatz zur Konvertierung von Konvertierung von
FoxPro/Win-Reports direkt FoxPro/Win-Reports direkt aufrufbaraufrufbar
„„USER“-Feld zu „FRX“-DateiUSER“-Feld zu „FRX“-Datei Memofeldbreite von 10 auf 4 ByteMemofeldbreite von 10 auf 4 Byte Environment in DataenvironmentEnvironment in Dataenvironment AutoOpen/AutoClose-EigenschaftAutoOpen/AutoClose-Eigenschaft „„Environment“ in DE.OpenTablesEnvironment“ in DE.OpenTables
Wizards & Wizards & Builders GmbH Builders GmbH
KonvertierungsassistentKonvertierungsassistent
Quellcode unter VFP\Tools\ConvertQuellcode unter VFP\Tools\Convert Backup lieber vorher selbst Backup lieber vorher selbst
machenmachen Logfile nicht sonderlich interessantLogfile nicht sonderlich interessant Unterscheidung für Masken Unterscheidung für Masken
[Converter] DeclareVariables[Converter] DeclareVariables PUBLIC _GotoPlaceHolderPUBLIC _GotoPlaceHolder EXTERNAL PROC <maske>.scxEXTERNAL PROC <maske>.scx DO FORM <maske.scx> NAME <zufall> LINKEDDO FORM <maske.scx> NAME <zufall> LINKED
[Converter] Begin/End CLEANUP[Converter] Begin/End CLEANUP CLEANUP und andere Prozeduren/FunktionenCLEANUP und andere Prozeduren/Funktionen
Maske:Maske: Formset (immer, auch wenn nur 1 Maske)Formset (immer, auch wenn nur 1 Maske) Form (Anzahl je nach Maskengruppe)Form (Anzahl je nach Maskengruppe) Pageframe (immer)Pageframe (immer) Page (Anzahl je nach Read-Leveln)Page (Anzahl je nach Read-Leveln)
Variablen!Variablen! „„Environment“ wird im Load gesetztEnvironment“ wird im Load gesetzt Recordpointer im Unload in globale Vars.!Recordpointer im Unload in globale Vars.! DataEnvironment enthält „Umgebung“DataEnvironment enthält „Umgebung“ AutoOpen/AutoClose wird gesetztAutoOpen/AutoClose wird gesetzt
Nachbearbeitung von Masken Nachbearbeitung von Masken (1)(1)
READ MODAL+DEACTIVATE beides aktiv!READ MODAL+DEACTIVATE beides aktiv! Doppelte Namen für Form/Control/Var.Doppelte Namen für Form/Control/Var. Shapes immer hinter allen ControlsShapes immer hinter allen Controls Unsichtbare Buttons immer vor ControlsUnsichtbare Buttons immer vor Controls Funktionen mittlerweile belegtFunktionen mittlerweile belegt
OLDVAL(), HOME() und ähnliche Namen evtl. vorh.OLDVAL(), HOME() und ähnliche Namen evtl. vorh.
Makro-Substition nicht in Eigenschaften!Makro-Substition nicht in Eigenschaften! &cPrompt => =&cPrompt => = cPrompt&cPrompt => =&cPrompt => = cPrompt
Wizards & Wizards & Builders GmbH Builders GmbH
Nachbearbeitung von Masken Nachbearbeitung von Masken (2)(2)
Setup-RETURN zu RETURN .F. ändern!Setup-RETURN zu RETURN .F. ändern! GenScreenX-Direktiven nicht mehr GenScreenX-Direktiven nicht mehr
vorhanden, ggf. visuell konvertieren...vorhanden, ggf. visuell konvertieren... #INSERT wird eingelesen#INSERT wird eingelesen #INSERT darf nur Direktiven enthalten#INSERT darf nur Direktiven enthalten
besser: Direktiven in .h-Datei verlagern und diese besser: Direktiven in .h-Datei verlagern und diese dann setzen oder mit #INCLUDE angebendann setzen oder mit #INCLUDE angeben
Wizards & Wizards & Builders GmbH Builders GmbH
Verlagern von CodeVerlagern von Code
FoxPro/Windows:FoxPro/Windows: CLEAR READCLEAR READ SHOW GETSHOW GET
Maskenset bei Einzelmasken entfernenMaskenset bei Einzelmasken entfernen Pageframe und Pages entfernenPageframe und Pages entfernen Parameter von Load nach Init verlagernParameter von Load nach Init verlagern Load-Variablen in eigene EigenschaftenLoad-Variablen in eigene Eigenschaften SPR-Code in eigene MethodenSPR-Code in eigene Methoden „„Private“ DatasessionsPrivate“ Datasessions WindowType 2=>0, 3=>1 WindowType 2=>0, 3=>1
(Einbahnstraße!)(Einbahnstraße!)
Wizards & Wizards & Builders GmbH Builders GmbH
Probleme mit TabellenProbleme mit Tabellen
Lange Variablen/Tabellennamen gültig!Lange Variablen/Tabellennamen gültig! Viel mehr Arbeitsbereiche! (Schleifen!)Viel mehr Arbeitsbereiche! (Schleifen!) ON KEY LABEL CTRL+0 verhindert .NULL.ON KEY LABEL CTRL+0 verhindert .NULL. NULL, DBC, neue Feldarten konvertieren NULL, DBC, neue Feldarten konvertieren
Tabellen nach VFP-Format, zurück mit: Tabellen nach VFP-Format, zurück mit: COPY TO <table> NEXT 0 TYPE FOX2XCOPY TO <table> NEXT 0 TYPE FOX2X
Was sollte man überlegen?Was sollte man überlegen?
Minimalitisch?Minimalitisch? Als Wrapper Als Wrapper
aufrufen?aufrufen?
Funktional?Funktional? Später überarbeiten?Später überarbeiten? Nachbearbeiten auf-Nachbearbeiten auf-
wendiger als neu?wendiger als neu?
Gleich Visuell?Gleich Visuell? Gemischt je nach Gemischt je nach
Maskeneinsatz?Maskeneinsatz?
Wizards & Wizards & Builders GmbH Builders GmbH
Vielen Dank!Vielen Dank!
Das waren die Themen:Das waren die Themen: Fallstudie aus der PraxisFallstudie aus der Praxis VorüberlegungenVorüberlegungen KonvertierungsansätzeKonvertierungsansätze Minimalistische Minimalistische