Heute fährt Michael Niethammer mit seinen Vorträgen zur Einführung in Visual FoxPro 9.0 fort. Michael präsentiert drei Themenbereiche: Das Binden von Daten in Formularen und Klassen, das Erstellen von COM Servern, sowie die Werkzeuge und Assistenten von Visual FoxPro.
Der sechste Vortrag dieses Tracks hatte das Binden von Daten in Formularen und Klassen zum Thema. Michael begann damit, das Konzept der Arbeit mit einer Datenumgebung als sinnvoller Ergänzung von Visual FoxPro-Formularen vorzustellen. Die Datenumgebung ist ein Objekt, dessen Aufgabe in der Durchführung aller Datenoperationen des Formulars besteht. So öffnet und schließt die Datenumgebung alle verwendeten Tabellen, verwaltet die Ansichten und führt weitere hilfreiche Aufgaben im Zusammenhang mit der Datenbehandlung aus. Die Datenumgebung kapselt alle Zugriffe auf die Daten, die das Formular benötigt, um korrekt zu funktionieren. Seit Visual FoxPro 8.0 ist die Datenumgebung eine separate Basisklasse, wodurch die Datenbehandlung deutlich erweitert wird.
Michael gab einen kurzen aber umfassenden Überblick über diese neue Klasse DataEnvironment, die möglichen darin enthaltenen Elemente, sowie über die Ereignisse und Eigenschaften. Selbstverständlich gehören diese Elemente alle eng zur Datenbehandlung. Daher erklärte Michael auch einige dieser Elemente. In diesem Zusammenhand erklärte Michael die Grundlagen des Bindens von Daten an die Steuerelemente des Formulars. Die Datenbindung ist die „letzte Verbindung“ zwischen der Benutzeroberfläche und der Datenspeicherung und -verwaltung irgendwo im Hintergrund, unabhängig davon, ob diese lokal oder remote durchgeführt wird. Michael machte die Zuhörer mit den privaten Datensitzungen vertraut und demonstrierte neben anderen Themen auch die Pufferungs- und Sperrmechanismen von Visual FoxPro sowie einige damit zusammenhängende Techniken, die Visual FoxPro anbietet. Außerdem fand er die Zeit, den Einsatz von Transaktionen zu demonstrieren.

Während seines siebten Vortrags konzentrierte Michael sich auf die Grundlagen der COM Server, was sie sind, wo sie eingesetzt werden können und wie sie erstellt werden. Er begann damit, die Grundlagen der COM Server zu erklären: COM Server sind im Grunde Designelemente, die Microsoft als eine Möglichkeit eingeführt hat, um Anwendungen miteinander zu verbinden, so dass eine Anwendung die Möglichkeiten anderer Anwendungen nutzen kann, wenn beide nach den Prinzipien von COM entworfen wurden.

Anschließend stellte Michael die einzelnen Schritte dar, die für das Einrichten eines COM Servers erforderlich sind. Er zeigte, wie einfach es ist, diese Aufgaben mit Visual FoxPro erfolgreich durchzuführen. Michael zeigte, weshalb COM Server zu den zentralsten Komponenten von Visual FoxPro gehören und weshalb sie wichtig sind, um mit anderen Anwendungen zusammenzuarbeiten, die in anderen Sprachen geschrieben wurden, beispielsweise in .NET oder Java. Visual FoxPro bietet alle Werkzeuge und Features, die erforderlich sind, um mit Visual FoxPro erstellte COM Server auf einfache Weise in „nicht-VFP-Umgebungen“ zu integrieren. Der Vorschlag schloss mit einer Demonstration, in der Michael zeigte, wie ein korrekt entworfener VFP COM Server auf einfache Weise überredet werden kann, als Webdienst zu funktionieren.
Was wäre Visual FoxPro ohne die zahlreichen mitgelieferten Werkzeuge und Assistenten? Davon ausgehend, dass nicht jeder mit allen diesen Werkzeugen und Assistenten vertraut ist, widmete Michael seinen achten Vortrag nichts anderem als der Einführung der Teilnehmer in den Gebrauch dieser Tools.
Neben der Erklärung des Einsatzes des Menü-Generators, des Projekt-Managers, des Debuggers, der Fehlerbehandlung und des Klassen-Katalogs widmete Michael einige Zeit dem Objekt-Katalog und der Ereignisbindung. Mit einer bewundernswerten Liebe zum Detail erklärte er die für das Debugging zur Verfügung stehenden Werkzeuge – sie schienen ihm „liebe Freunde“ zu sein, die unter allen Umständen willkommen sind. Zusätzlich widmete Michael einige Zeit der Präsentation seiner Erfahrung und seines Wissens der Entwicklung im Team mit den „neuen“ Features von VFP sowie der Quellcodeverwaltung mit Source Safe.

Dan Jurden präsentierte in seinem Vortrag am frühen Morgen Voodoo. Voodoo ist ein kommerzielles Werkzeug für die Web-Entwicklung, das von EPS Software und WestWind geschrieben wurde und das Visual FoxPro-Entwicklern das Erstellen von Web-Anwendungen erleichtert.
Voodoo besteht aus verschiedenen Klassen für das Erstellen von Web-Anwendungen, die in Visual FoxPro erstellt wurden. Die Grundidee ist, eine Entwicklungsumgebung zu erstellen, die dem Visual FoxPro-Entwickler vertraut ist: wie Visual FoxPro besteht Voodoo aus Objekten, die Objekte auf dem Monitor können über Eigenschaften und Methoden manipuliert werden, die Objekte lösen Ereignisse aus, der Fokus verbleibt auf der gleichen Seite usw.
Um diese Features zu ermöglichen, wurde Voodoo entworfen, um auf der Grundlage von „Connector“-Technologien zu arbeiten, die eine grundlegende Infrastruktur für die Webentwicklung bereitstellen, die für das Erstellen einer Webanwendung erforderlich ist. Dan führte aus, dass eine solche Grund-Infrastruktur für die Webentwicklung durch Voodoo nicht bereitgestellt wird. Mögliche Plattformen können ASP, Web Connection und andere sein. Anders ausgedrückt: Voodoo ist plattformunabhängig, es muss lediglich eine dünne Abstraktionsschicht zwischen die Voodoo Web Controls und die darunter liegenden Webserver-Plattformen gelegt werden.
Anschließend demonstrierte Dan, wie mit diesem Werkzeug eine Webanwendung erstellt wird.
Am Ende betonte Dan nachdrücklich, dass einfache Szenarien nicht geeignet sind, damit Voodoo seine Stärken zeigen kann. Je komplexer eine Anwendung wird, desto größer ist der Vorteil für den Visual FoxPro-Entwickler.
Beginnend mit Erklärungen, weshalb jeder Entwickler zumindest ein System zur Versions- und Quellcodekontrolle verwenden sollte, fasste Christof die Vergangenheit und die Zukunft von Microsoft Visual SourceSafe (VSS) zusammen. VSS hat die Vorteile, dass es in der Visual FoxPro-Community gut bekannt ist und dass es sich gut in Visual FoxPro integriert. Allerdings ist die letzte Version mittlerweile sechs Jahre als, und der Zugriff über LAN, WAN und Internet ist nur mit teuren Zusatzprodukten möglich. Neben dem Fakt, dass Microsoft VSS 8.0 irgendwann in der Zukunft herausgeben wird, befürchtete Christof, dass dann keine direkte Integration und Unterstützung für Visual FoxPro mehr vorhanden sein wird.
Auf der Basis dieser Aspekte stellte er eine Alternative mit Namen Current Version System (CVS) vor, ein Projekt der Open Source Community. Christof zeigte Schritt für Schritt, wie CVS grundlegend installiert, konfiguriert und eingesetzt wird. Anschließend zeigte er, wie Visual FoxPro mit CVS verwendet wird. Er bot ein frei verfügbares Add-On mit Namen TwoFox an, das die Binärdateien von VFP, beispielsweise Formulare (.SCX), Berichte (.FRX) und Bibliotheken (.VCX) in XML-Dateien umwandelt. Diese Umwandlung funktioniert in beide Richtungen.
Christof beendete seinen Vortrag mit der Vorstellung von SubVersion (SVN), eines Nachfolgers von CVS, und erklärte auch hier detailliert, wie SVN unter Windows allgemein und in Visual FoxPro im Besonderen eingesetzt wird.

Visual FoxPro 9.0 enthält in allen Bereichen der Visual FoxPro-Entwicklung viele tolle neue Features und Erweiterungen. In seinem Vortrag konzentrierte sich Drew Speedie auf die Demonstration der Erweiterungen, die die Produktivität der Entwickler in der IDE von VFP steigern. Das Eigenschaften-Fenster hat signifikante Änderungen erfahren, die das Herzstück des VFP-Updates an der IDE ausmachen. Es bestehen aber viele weitere Verbesserungen. Drew wollte sie in seinem Vortrag alle aufzählen und – wie gewohnt – präsentierte er so viele Demos und so viel Beispielcode, wie es in der zur Verfügung stehenden Zeit möglich war.
Zu den von Drew gezeigten Features des Eigenschaften-Fensters gehören:
- Die Liste der Eigenschaften, Ereignisse und Methoden.
- Das optionale Beschreibungsfenster unterhalb dieser Liste.
- Die Dropdown-Listen der Objekte.
- Die Dropdown-Listen der Eigenschaften wie BorderStyle, FontName, ShowWindow usw.
- Den Wirkungsbereich. Gelten die Anpassungen in den Instanzen und untergeordneten Klassen?
- Die Art und Weise, in der benutzerdefinierte PEMs im Eigenschaften-Fenster verwendet werden.
- Soll eine PEM im Tab Favoriten erscheinen?
- Ein Skript (reiner VFP-Code), das jeder benutzerdefinierten Eigenschaft sowie jeder nativen Eigenschaft zugeordnet werden kann, die bislang über keinen Eigenschaften-Editor oder eine Dropdown-Liste für die Auswahl verfügen.
Es gibt auch einigen Komfort für den Entwickler: ein ungültiger XML-String in der Eigenschaft _MemberData wird durch Visual FoxPro vollständig ignoriert.
Drew präsentierte noch einige zusätzliche Erweiterungen, zu denen unter anderem auch Erweiterungen am Formular-/Klassen-Designer, dem Projekt-Manager, der Task Pane (die Fenster Umgebungs-Manager und Daten-Explorer betreffend), sowie dem Klassen-Katalog (die Behandlung von in einem .PRG definierten Klassen betreffend) gehören.
Drew Speedie sprach über eines seiner Lieblingsthemen: Die Funktion BINDEVENT(), die mit Visual FoxPro 8.0 eingeführt wurde, um Eigenschaften, Ereignisse und Methoden an anderen Code zu binden. Dieses Feature unterstützt eine bessere Kapselung, eine lockerere Verbindung und eine einfachere Wartung, besonders beim Entwurf zusammengesetzter Klassen.
In VFP 9 wurde die Funktion BINDEVENT() erweitert, so dass sie jetzt auch das Binden an Nachrichten vom Betriebssystem unterstützt. Jetzt können Sie Visual FoxPro-Code an Ereignisse binden, die Windows an Visual FoxPro-Objekte mit einem Window Handle (jWnd) sendet, beispielsweise _VFP._Screen oder die Basisklasse Form.
In diesem Vortrag erläuterte Drew diese neue Funktionalität und die Features, erklärte vorsichtig die erweiterten Funktionalitäten, die mit Visual FoxPro 9 ausgeliefert werden und verglich sie mit ihren Äquivalenten in Visual FoxPro 8. Wo möglich verwendete Drew verschiedene Beispiele, auch eine abstrakte Klasse für die Ereignisbehandlung sowie konkrete abgeleitete Klassen. Die Demonstrationen, die Drew vorbereitet hatte, zeigten, wie Visual FoxPro-Code an Systemereignisse von Windows gebunden werden kann, beispielsweise, wenn der Anwender die Auflösung des Bildschirms ändern, Ihre VFP-Anwendung verlässt oder zu ihr zurückkehrt, den Laptop aus dem Netzwerk entfernt usw.
Drew betonte mehrfach, dass sich die Teilnehmer den Hilfeeintrag zu BINDEVENT() in Visual FoxPro 9.0 sowie das Thema zur Behandlung der Ereignisse von Windows ansehen sollten. Drew erwartet, dass die Solution Samples in der endgültigen Auslieferung von Visual FoxPro 9 einige Beispiele zur Ereignisbehandlung enthalten sein werden.

Vortrag oder nicht Vortrag – das ist hier die Frage. Um die Antwort zu geben – ein Vortrag unmittelbar nach dem Mittagessen ist nicht für jeden Teilnehmer die reine Freude. Daher versammelten sich auch weniger als zehn Teilnehmer, um der wirklich überraschenden Lektion von Toni Feltman zu FoxPros Task Pane zu folgen. Wie üblich erklärte Toni alles über die Task Pane von Grund auf. Welche Einstellungen sollten verwendet werden? Wie funktionieren die mit FoxPro ausgelieferten Fenster?
Während des Vortrags beleuchtete sie sowohl den Environment Manager als auch das neue Fenster von VFP 9.0L den Data Explorer. Derzeit sind vier unterschiedliche Fensterarten möglich und beginnend mit einem auf einer Webseite basierenden Fenster entwickelte sie ad hoc verschiedene neue Fenster.
Besonders das Abfragen und Anzeigen der Wetterinformationen von Toledo und Frankfurt ist das ultimative Beispiel für ein neues Fenster. Es ist wirklich überraschend, zu sehen, wie einfach diese unterschiedlichen Fenster erstellt werden können. Am Ende des Vortrags zeigte sie, wie eigene Fenster ausgeliefert oder Fenster von anderen Entwicklern, beispielsweise von der dFPUG oder VFX installiert werden.

In seinem Händlervortrag demonstrierte Rick Strahl die wichtigsten Vorteile seines HTML Help Builder, den er über seine Firma vertreibt. Das Design basiert auf der Trennung der Inhalte und deren Präsentation. Für spezielle Themen und Eintragstypen können Templates angelegt werden. Diese Templates können für die Anzeige des Inhalts verwendet werden, der separat eingegeben wird. Falls erforderlich können diese Templates auch während der Erstellung eines Dokuments geändert werden. Um einen schnellen Start zu ermöglichen, wird der Help Builder mit verschiedenen Templates ausgeliefert, also mit HTML-Dateien, die auf einfache Weise an die eigenen Bedürfnisse angepasst werden können.
Die Benutzeroberfläche des Help Builder wurde entsprechend der Gewohnheiten der Entwickler gestaltet. Mehr noch, da der Help Builder durch einen Visual FoxPro-Entwickler entworfen wurde, enthält er einige sehr hilfreiche Werkzeuge und Features, die die Visual FoxPro-Entwickler unterstützen, wenn sie ihre Dokumentation während der Entwicklung schreiben. Der Help Builder umfasst die Möglichkeit, VFP-Klassen, COM-Objekte, Webdienste und .NET-Typen zu importieren. Er integriert sich auch gut in die IDE von Visual FoxPro, da er es ermöglicht, auf einfache Weise die Hilfeeinträge den Steuerelementen der Benutzeroberfläche zuzuordnen. Außerdem kann er sowohl in der IDE als auch in laufenden Anwendungen kontextsensitiv funktionieren.
Rick demonstrierte den Gebrauch des Help Builder mit Hilfe anschaulicher Beispiele, die die Features überzeugend darstellten.

Mike Feltman begann seinen Vortrag mit der immerwährenden Frage „Was ist es?“, in diesem Fall also „Was ist mehrschichtige Entwicklung?“. Seine kurze Antwort: mehrschichtige Entwicklung ist nichts anderes als die Trennung verschiedener Teile der Anwendungen in sinnvolle separate Einheiten, die aus irgendeinem Grund „Schichten“ genannt werden. Unabhängig davon, wie Sie es nennen, sei es Schicht oder Objekt, bedeutet mehrschichtig nichts anderes, als dass der Code, aus dem die Anwendung erstellt wurde, entsprechend seiner Funktionalität in separate Teile aufgesplittet ist, die jeweils für spezielle Aufgaben vorgesehen sind, und die über alle Features verfügen, um ihre Aufgabe auszuführen.
Die Design-Grundlage mehrschichtiger Anwendungen besteht aus der Trennung der Anwendung in die Benutzeroberfläche, die Datenschicht, sowie in die Schicht mit den Geschäftsregeln, die die beiden anderen Schichten verbindet. Mike fuhr damit fort, verschiedene Aspekte des mehrschichtigen Designs sowie des Erstellens von Anwendungen zu präsentieren. Es war ihm dabei am wichtigsten, herauszuarbeiten – und das ist nicht nur für ihn wichtig, sondern für uns alle – dass Sie nicht zwingend COM, COM+, DCOM, MTS, ADO, RDS Windows DNA usw. benötigen, um eine mehrschichtige Anwendung zu erstellen. Tatsächlich ist die mehrschichtige Entwicklung vollständig mit lediglich drei kleinen Buchstaben möglich: VFP. Mike führte aber schnell aus, dass Sie für die Auslieferung mehrschichtiger Anwendungen eventuell COM, COM+… benötigen. Mike konzentrierte sich daher darauf, den Zuhörern tiefgehend zu erläutern, wie mehrschichtige Anwendungen mit Visual FoxPro erstellt werden können.
Am Ende zeigte er die Vor- und Nachteile des mehrschichtigen Designs auf:
- Verbesserte Wiederverwendbarkeit der Komponenten der Anwendung.
- Anwendungen sind einfacher zu ändern.
- Ermöglicht den Zugriff auf Geschäftsregeln und Daten aus anderen Anwendungen heraus.
- Vereinfacht langfristig die Wartung.
- Erfordert ein genaueres Design.
- Trennt die Oberfläche von der Implementierung.
- Verbesserte Skalierbarkeit.
- Erfordert aufwändigeres Design und Planung.
- Komplexere Objektmodelle.
- Steilere Lernkurve, besonders wenn Sie Ihr mehrschichtiges Framework schreiben.
- Erfordert strikte Disziplin.
- Mögliche Performanceprobleme.
- Schwieriges Debugging.

Das Entwickeln von Visual FoxPro-Anwendungen ist für nahezu jeden Teilnehmer dieser Konferenz überlebenswichtig. Der Einsatz von Visual Extend (VFX) vereinfacht die Entwicklung, macht sie schneller und zuverlässiger. Uwe Habermann und Venelina Jordanova präsentierten die neuen Features der kommenden Version 9.0 von Visual Extend, das substantielle Verbesserungen bei der Behandlung von Daten mit der Klasse CursorAdapter und dem neuen Cursor Adapter-Assistenten enthält. Dies betrifft alle Datenquellen, auch remote Daten auf einem SQL Server.
Auch die meisten Generatoren wurden in VFX verbessert und es wurden viele neue Features hinzugefügt oder verbessert. Drei dieser Features sind besonders interessant:
Ein anderes wichtiges Feature ist ein Active Visual FoxPro Page-Generator, der in enger Zusammenarbeit des VFX-Teams mit dem AFP-Team entwickelt wurde. Über Details zu dazu haben wir bereits gestern berichtet.