VFPConversionLogo
HomeBlogs (Englisch)Training (Englisch)ProdukteVeranstaltungenDiensteUber UnsFAQ
VFP Conversion - Project Analyzer

Der Project Analyzer ist ein Tool, das eine FoxPro-PJX-Datei und dazugehörige Dateien analysiert und Daten bereitstellt, die weiter unten genauer beschrieben werden. Diese Daten stehen wahlweise am Bildschirm oder in ausgedruckter Form zur Verfügung.

Wozu dienen mir diese Informationen?

In erster Linie sind diese Informationen zur Beurteilung der Komplexität und Größe einer Applikation gedacht. EPS Software kann anhand der errechneten Parameter detaillierte Schlüsse über die Dauer und Kosten einer Konvertierung in .NET ziehen. Hierbei wird prinzipiell von Mann-Monaten ausgegangen. Zudem liegen EPS Software Erfahrungswerte vor, die auch Rückschlüsse auf die Ausbildung und Kenntnisse der erforderlichen Programmierer ziehen lassen.

Es gibt zwei Versionen des PJX Analyzers:

PJX Analyzer Lite — Eine kostenlose Download-Version die Ihnen die wesentlichen Statistiken und Parameter zur Verfügung stellt. Bitte richten Sie Ihre Anfrage diesbezüglich an oder +43 (6542) 55008.

PJX Analyzer Pro — Die Vollversion des PJX Analyzers verfügt über 10 verschiedene analytische Sub-Systeme. Jedes dieser Systeme verfügt über ein flexibles GUI sowie einen eigenen Report. Die Kosten für diese Version belaufen sich auf EUR 129,--.

Die Ergebnise einer PJX-Analayse werden in einer XML-Datei gespeichert, die Sie optional an EPS Software für weitere Analysen mailen können: .

Wie sieht das Resultat des PJX-Analyzers aus?

Ermittelt wird die Anzahl von:

  • Class Libraries (VCX)
  • Forms (Screens) (SCX)
  • Programs (PRG)
  • Reports (FRX)
  • Labels (LBX)
  • Database Containers (DBC)
  • Freie Tabellen (DBF)
  • Menus (MNX)
  • RQBE Queries (QPR)
  • Icon files (ICO)
  • Text files (TXT)
  • FoxPro Libraries (FLL)
  • FoxPro Applikationen (APP)
  • Anderen Dateien (z.B. MNX, BMP, MSK, GIF)

Der PJX Analyzer reduziert die detaillierten Parameter, um projektrelevante Parameter zu errechnen:

  • Anzahl von Klassen, Prozeduren, Funktionen und ActiveX controls.
  • Anzahl an Befehlen, durchschnittliche Anzahl von Befehlen in einer Prozedur (oder Funktion bzw. Methode), maximale Anyahl von Befehlen pro Prozedur/Methode.

Die projektrelevanten Statistiken und Parameter sind sowohl in der Pro- als auch in der Light-Version verfügbar. Weitere detaillierte Informationen stellt der PJX Analyzer Pro bereit.

In Class-Libraries

Der PJX-Analyzer überprüft die VCX-Dateien ermittelt die enthaltene Anzahl von:

  • Commands
  • Prozeduren
  • Funktionen
  • Containers
  • PageFrames und Pages
  • OptionGroups und OptionButtons
  • CommandGroups und CommandButtons
  • Grids
  • Weitere UI controls (z.B. textBox/editBox/checkBox/button)
  • ActiveX controls
  • Weitere enthaltene Class-Libraries

Erklärungen zu den Parametern:

  • Most Commands Die größte Anzahl an Befehlen in einer Prozedur, Funktion oder Methode einer Klasse.
  • Nesting Depth Die Verschachtelungstiefe innerhalb einer Funktion
  • Subclassing Depth Die Anzahl, wie oft VFP eine Parent-Class aufrufen muss, befor die Klasse vollständig instanziiert ist.

In Forms

In den Forms ermittelt der PJX-Analyzer folgende Zahlen:

  • Control Types (pro BaseClass)
  • Befehle
  • Prozeduren
  • Funktionen
  • Container
  • PageFrames und Pages
  • OptionGroups und OptionButtons
  • CommandGroups und CommandButtons
  • Grids
  • Weitere UI controls (z.B. textBox/editBox/checkBox/button) und baseclasses für diese controls
  • ActiveX controls
  • Externe class libraries
  • Der PJX-Analyzer findet ebenso eventuelle private data sessions innerhalb der Form.

Erklärungen zu den Parametern:

  • Most Commands Die größte Anzahl an Befehlen in einer Prozedur, Funktion oder Methode einer Klasse.
  • Nesting Depth Die Verschachtelungstiefe innerhalb einer Funktion
  • Subclassing Depth Die Anzahl, wie oft VFP eine Parent-Class aufrufen muss, bevor die Klasse vollständig instanziiert ist.

Der PJX-Analyzer bearbeitet alle VCX-Klassen, die in Forms verwendet werden und sucht auch nach weiteren Controls innerhalb cer VCX-Klassen, auf die nicht von der Form aus explizit zugeriffen werden.

In Reports und Labels

Der PJX-Analyzer überprüft die Reports und Label-Files Ihrer Applikation (FRX und LBX) und stellt die Anzahl folgender Elemente fest:

  • Controls
  • Controls mit expressions (Code)
  • Gruppierungen
  • Variablen
  • ActiveX Controls
  • Eventuelle private data sessions.
In Program-Files

In Programmdateien sucht der PJX-Analyzer nach der Anzahl von:

  • Command lines
  • Klassen
  • Prozeduren
  • Funktionen
  • Die häufigste Anzahl von Zeilen pro Prozedur oder Funktion.
In Database-Container

Folgende Parameter werden aus Datenbank-Containern ermittelt:

  • Anzahl der Tabellen
  • Views
  • Relationen
  • Stored procedures
  • Connections
In freien Tabellen

Die freien Tabellen haben folgende relevante Informtionen:

  • Anzahl der Spalten
  • Anzahl der Indizes
  • Anzahl der Zeilen
ActiveX Controls

Bei ActiveX Controls ist lediglich wichtig, wie viele davon es gibt und wie oft sie in der Applikation verwendet werden.

Erklärungen der Parameter
  • Commands — Die Anzahl der VFP-Befehle (sowie die Anzahl der Code-Zeilen). Sehr oft wird Programmcode in FoxPro-Programmen in mehreren Zeilen formuliert oder durch Kommentare oder Leerzeilen getrennt. Diese wünschenswerte Praxis erleichtert die Lesbarkeit von Programmcode enorm, insbesondere in Zusammenhang mit SQL-Abfragen, erschwert jedoch die Ermittlung korrekter Parameter, wie beispielsweise die wirkliche Anzahl an Code-Zeilen. Der PJX-Analyzer orientiert sich an der tatsächlichen Anzahl von Befehlen und Zeilen und ignoriert die Kommentare bzw. Leerzeilen und Zeilenumbrüche.
  • Most Commands — Die größte Anzahl von Befehlen in einer Prozedur oder Funktion einer Klasse, eines Programmes oder einer Form.
  • Nesting Depth — Die Verschachtelungstiefe in einer Control. Beispielsweise befindet sich eine TextForm innerhalb einer MyForm•PageFrame1•Page1•cntKundenAdresse•txtPostleitzahl. Der PJX-Analyzer ermittelt die durchschnittliche und tiefste Verschachtelung aller controls in einer Klasse oder Form.
  • Subclassing Depth — Im PJX-Analayzer ist der Subclassing-Parameter die Anzahl, wie oft FoxPro eine Parent-Klasse aufrufen muss, damit eine Control vollständig instanziiert ist. Beispielsweise haben sie eine Kreditkarten-Textbox erstellt, die Kartendaten verarbeitet, diese ist von Ihrer Standard-Textbox vererbt, und diese wiederrum basiert auf der FoxPro-Textbox-Control. in diesem Fall wuerde die Subclassing-Analyse einen Wert von 2 ermitteln.
  • Data Reduction Die Umwandlung von raw data in eine bessere Struktur.
Wie werden die Resultate gespeichert?

Die ermittelten Parameter werden in einem Set von XML-Daten gespeichert. Diese werden im Verzeichnis des Analyzers hinterlegt und können wahlweise vom Analyzer neuerlich aufgerufen werden, ohne die eigentliche Analyse noch einmal zu starten.

Systemvoraussetzungen

Das Analyzer-Tool wuerde mit VFP 8 geschrieben und mit VFP7 - VFP9 getestet. Als Betriebssystem wuerde hierbei Windows XP Pro SP2 verwendet.