Mittwoch, 5. November

Keynote 1 – Visual FoxPro 8.0

Rainer Becker stellt Yair Alan Griver (alias ‘YAG’), den Visual Studio Data Gruppenmanager von Microsoft, vor. Die VS Gruppe ist verantwortlich für Visual FoxPro und die Visual Studio Datenbankwerkzeuge (einschließlich des Query und des Datendesigners, der in Visual Studio und anderen Anwendungen enthalten ist. Rainer erwähnt, dass YAG ihn schon gefragt hätte, wie lange er das Zeitlimit überziehen könne. Rainer versichert, dass keiner sich beschweren wird, wenn er seinen Vortrag aufgrund toller Beispiele ausdehnt, aber er solle sich klar machen, dass die zusätzliche Zeit dann leider seine Lunchzeit verkürzen wird. Gut, sagt YAG, wir werden sehen. Danach fängt YAG mit der VFP Keynote an (und beendet sie pünktlich).

Übrigens war YAG bereits Redner auf der ersten dFPUG Konferenz vor 10 Jahren. Dieses Jahr ist das erste mal, dass er wieder nach Frankfurt kommt – sozusagen ein Rednerwiedersehen. Willkommen zurück bei der deutschen Visual FoxPro Entwicklerkonferenz!

Als er sich vorstellt, erzählt YAG, dass Ken Levy bedauert, dass er dieses Jahr nicht nach Frankfurt kommen konnte, aber er sendet den Teilnehmern die besten Wünsche. Ken arbeitet derzeit sowohl viel an der nächsten Version von VFP als auch an Werkzeugen für XML für die nächste Version von Visual Studio.NET. Ken hielt die letzten zwei Jahre die Keynotes.

YAG kündigt an, dass er in seiner Late Night Session verschiedene neue Features vorführen wird, die alle in der nächsten Version von Visual FoxPro enthalten sind (Codename Europa’). Er sagt, dass er uns einige der bereits angekündigten neuen Features im Berichtdesign zeigen wird, die noch niemand vorher gesehen hat! Wir freuen uns alle darauf!

YAG lädt auch jeden auch zu seiner .NET Keynote ein, die am Donnerstag stattfinden wird: „Selber Platz, selbe Zeit“. Dort führt er in viele der Verbesserungen ein, die Microsoft in die nächste Version von VS.NET (Codename: Whidbey’) einbringen wird. Diese Verbesserung wurden erstmalig bei der Microsoft Professional Developers Conference (PDC) in Los Angeles in der Vorwoche vorgeführt.

Danach führt er eine Umfrage bei den Zuhörern durch, welche Version von Visual FoxPro die Teilnehmer benutzen. Er bittet uns, die Hand zu heben: So kann jeder sehen, dass weit mehr als die Hälfte der Zuhörer Visual FoxPro 8.0 benutzen, auch wenn es immer noch Menschen gibt, die derzeit Visual FoxPro 7.0 benutzen – und sogar einige, die immer noch mit Visual FoxPro 6.0 arbeiten. Es mag sich lohnen, zu erwähnen, dass Rainer der Einladung zur Konferenz ein Bestellformular für Visual FoxPro 8.0 und andere Produkte beigefügt hatte, welches er einige Wochen vorher per Mail versandt hat. Sein Büro bekam eine erstaunlich hohe Zahl Bestellungen für die VFP 8.0 Update-Version zurück! Also warum macht das nicht jeder?

YAG beginnt mit seiner Session. Seine Agenda ist folgende:

YAG gibt noch einmal einen kompakten Überblick über die in Visual FoxPro 8.0 enthaltenen Features. Visual FoxPro 8.0 ist die bisher stabilste Version von Visual FoxPro und ein außergewöhnliches Entwicklungstool. Die meisten Verbesserungen basierten auf dem Feedback der Kunden (man hörte irgendwo die Zahl 80%).

Weitere Themen in Alans Tagesordnung sind die neuen Runtime Features für die Endbenutzer, verbesserte SQL Server Connecitivity, gesteigerte .NET Interoperabilität und – am wichtigsten für uns Entwickler – Beibehaltung der Abwärtskompabilität mit früheren Versionen.
Die Themenliste von YAG in Bezug auf Visual FoxPro 8.0 Themes beinhaltet

Es würde über den Rahmen eines solchen Berichtes hinaus gehen, wenn man alles, was YAG in Worten und Taten präsentiert, mitschreiben würde, deshalb hier nur einige Punkte, die uns besonders erwähnenswert scheinen:
Wussten Sie, dass der eigentliche Grund, warum Minesweeper noch am Leben gehalten wird, die Tatsache ist, dass es ein perfektes Test-Tool für den Speicherverbrauch ist, wenn viele Objekte erzeugt werden? Sie glauben das nicht? Vielleicht kennen sie irgendeinen anderen Nutzen von Minesweeper? – Man muss nur YAG fragen!

Viele in VFP enthaltenen Drag- und Drop Features gehören zu den Hauptverbesserungen bei der Produktivität. Manche von ihnen sind gut versteckt, so dass die Suche nach ihnen manchmal wie eine Schatzsuche anmutet. Bei YAG findet man Hilfe: Das Text Scrap Feature der Toolbox erlaubt nicht nur Drag und Drop aus der Toolbox zum Editor Fenster, sondern auch umgekehrt! Wir sind uns ziemlich sicher, dass keiner aus dem Publikum das bisher gewusst hat!

Bei der Demonstration des neuen Konstrukts TRY...CATCH...FINALLY zur Fehlerbehandlung beweist YAG seine vorzüglichen Fähigkeiten als Präsentator: Ohne das leiseste Zögern trifft er den richtigen Knopf – verharmlosend Show Code’ genannt und los geht’s: ERROR’ meldet Visual FoxPro. Aber YAG weiß, was zu tun ist und wie einfach Fehler in Visual FoxPro gemacht werden und – noch wichtiger – wie einfach man sie finden und korrigieren kann ?

Wirklich erstaunlich sind die Verbesserungen bei den Gridklassen, dem BindControl-Feature, der GDI+ Support und die neuen Erweiterungen beim Report Generator, wie Seite x von y, mehrere Berichte zu einem zusammenfassen, die Option zum Speichern der Druckereinstellungen etc.

Am Schluss führt YAG alle Verbesserungen und Features zusammen in einer spannenden Demonstration vor: Visual FoxPro redet mit VS.NET und VS.NET redet mit Visual FoxPro. Dabei lernen wir eine neue Bedeutung des Wortes Test Engineer’ kennen – einige der Jungs führen die Tests durch, andere hingegen werden in den Tests verwendet. Nämlich in den Testdaten, mit denen die Tests durchgeführt werden. Bei dem Beispielfall, wie Motorradfahrer Ohrenschmerzen aufgrund des Durchbrechens der Schallmauer bekommen, lernen wir, wie man sie wieder heilen kann: Mit Hilfe eines Pocket PCs, der in der Hand eines virtuellen Arztes ist (dank .NET), und der via ASP.NET XML Webservice mit einem medizinischen Systems redet (das PDA, nicht der Arzt, Kerl!), welches unter Visual FoxPro erstellt wurde. Das ist wirklich eine überzeugende Demonstration eines Mensch-Maschine Systems, das VFP/.NET Technologie benutzt!

YAG gibt uns einen Überblick auf die große Anzahl von verfügbaren Beispielen im Zusammenhang mit Visual FoxPro 8.0 oder Beispielen, die in der Community’ erhältlich sind. Apropos Community: Wenn man irgend jemanden in der Anwendergemeinde erreichen will, ist Visual FoxPro sehr gut dafür geeignet. Man muss lediglich die Taskpane starten und den Community Pad drücken - schon ist man mit der Welt von Visual FoxPro verbunden.
Nun, nicht nur mit der Welt von Visual FoxPro. Auch die Verbindungen zwischen Visual Studio von Microsoft und den Visual FoxPro Teams wachsen zusammen. Das verbessert nicht nur die technische Seite (siehe Interoperabilität) sondern hilft allen Entwicklern, die Entwicklungswerkzeuge von Microsoft benutzen, im heutigen Markt zu überleben.


Track: Eine Einführung in Visual FoxPro (Teil 2/2)

Heute ist ein harter Tag für Michael Niethammer. Der Track beginnt morgens um 8.30 Uhr und der letzte Vortrag endet um 16.15. Er hält nacheinander fünf Vorträge.
Die Themen am zweiten Konferenztag beinhalten weiterführende Themen wie z.B. das Arbeiten mit Formularen und objektorientiertes Programmieren. In den ersten beiden Vorträgen erläutert er Basiskonzepte der objektorientierten Programmierung. Er führt vor, wie man Formulare und Klassen in Visual FoxPro erzeugt und benutzt. Die VFP Basisklassen werden im Detail behandelt. Der nächste Schritt ist die Erläuterung, was Ereignisse in der VFP Basisklassen sind, was sie anbieten und in welchen Fällen das jeweilige Ereignis ausgelöst wird. Im dritten Vortrag zeigt Michael, wie man Steuerelemente an Daten bindet und wie man eine Anwendung in einer Multiuser-Umgebung mit Hilfe von Buffering und Transactions zum Laufen bekommt.

Im nächsten Vortrag geht es um das Erzeugen von COM Servern mit Visual FoxPro. Dies ist ein sehr interessantes Thema für eine Konferenz. Ich bin sicher, dass nicht nur die VFP Anfänger daran teilnehmen. Anfangs erklärt Michael die Grundkonzepte von COM Servern und dass sie leicht von fast allen Programmiersprachen benutzt werden können. Er führt vor, wie man eine VFP COM.DLL in eine .NET Anwendung integrieren kann und wie einfach man VFP automatisch aus einer Beispiel-DLL einen Webservice erzeugen lassen kann.

Fast am Ende des Tages beginnt der letzte Vortrag dieses Tracks. Michael führt durch alle weiteren Punkte, die bis jetzt noch nicht erwähnt worden sind und die man benötigt, um eine vollständige Anwendung zu erzeugen: Definition von Menüs und Toolbars, Erstellen der Anwendung und das Erzeugen von Reports. Er gibt verschiedene Tipps und Tricks zum Entwickeln mit Visual FoxPro und einen kurzen Überblick und Tipps in Bezug auf die Verwendung von Frameworks mit VFP.

Am Abend fragte ich Michael, wie er sich nach den fünf Vorträgen fühlt. Er meinte, dass alles gut gelaufen ist und seine Arbeit für diese Konferenz getan ist. Er freute sich, dass er ab jetzt für den Rest der Konferenz entspannt genießen könne.


FLL-Erstellung

Christof Lange, nicht nur ein bekannter Redner in Deutschland, sondern auch ein Autor des FoxPro Advisor Magazins, zeigt uns, wozu FLL’s dienen und wie man ein Beispiel FLL von
Grund auf erstellt.

Sein Vortrag hat die Entwickler zur Zielgruppe, die ihre Anwendungen mit Funktionen erweitern müssen oder wollen, die in C oder C++ geschrieben sind. Christof erwähnt Aufgaben wie die erweiterte String-Manipulation, das Erfassen von Windowsereignissen und das Erzeugen von Callback-Funktionen, um sie mit Windows API Funktionalität zu benutzen als mögliche Gründe, um ein FLL zu erzeugen.

Für die Demonstrationen benutzt Christof Visual Studio.NET 2003, das Visual C++ beinhaltet. Er gibt einen kurzen Überblick über die wichtigsten IDE-Elemente, damit die Teilnehmer wissen, wo sie das Benötigte finden können, um ihre erste FLL zu erzeugen. Danach führt er in die C-Sprache ein und erklärt die verfügbaren Datentypen, die wichtigsten Funktionen und die Syntax im allgemeinen. Nachdem die Teilnehmer nun Grundkenntnisse der Sprache haben, zeigt Christof ein kleines Beispielprogramm, das in normalem C geschrieben ist und das er dann an eine EXE kompiliert.

Er führt das gleiche Beispielprogramm in einer Version vor, die zum Erzeugen einer FLL benutzt werden kann und erklärt die Unterschiede zwischen den beiden Versionen. Er führt die speziellen Funktionen aus, die ein FLL ausführt.

Christof beendet seinen Vorträg mit dem Erzeugen einer Beispiel FLL, die in die Activate und Deactivate Ereignisse des Hauptfensters von VFP eingreift, so wie man dies mittlerweile mit der Hilfe der BINDEVENT-Funktion machen kann, die von Visual FoxPro 8.0 eingeführt wurde.

Schließlich möchte ich noch ein Wort über Christofs Unterlagen sagen: Es ist wirklich ein exzellenter Artikel über das Thema Erzeugen von FLLs’! Ich habe niemals eine bessere oder klarere Einführung zu diesem Thema gelesen. Er erwähnt jede Compiler-Einstellung (genau wie im Vortrag), die man machen muss, um eine FLL mit Visual C++ zu erzeugen und gibt eine detaillierte schrittweise Einführung in die Welt der Sprache C und in das Erzeugen einer FLL aus der Sicht eines VFP Entwicklers.


Integration von Crystal Reports mit VFP

Dan Jordan, der hier zum zweiten Mal eine Vorlesung hält, gibt eine Einführung in Crystal Reports 9. Seine Vortragsthemen:

Das erste, was uns Dan zeigt, ist die erstaunlich hohe Anzahl der Datenquellen, aus denen Crystal Reports die Daten lesen kann. Man kann die Berichte nicht nur mit Datenbanken wie SQL Server oder Oracle verbinden, sondern auch mit Windows Ereignisprotokoll, dem Exchange Server, Outlookdateien und jeder anderen Quelle, die einen OLEDB oder ODBC Treiber zur Verfügung stellt. Die eingebaute Unterstützung für freie FoxPro Tabellen ist für FoxPro Entwickler ein sehr interessantes Feature. Zugang zu einer Tabelle, die in einem VFP Datenbankcontainer enthalten ist, kann durch die Benutzung eines VFP OLEDB Providers erreicht werden. Dan stellt heraus, dass nach der Auswahl der Datenquelle alles umgehend funktioniert.

Danach bekommen wir einen Überblick über die verfügbaren Feldtypen und die speziellen Felder wie die, die Seite x von y’ enthält oder das Datum- und Zeitfeld bezüglich der letzten Änderung des Berichtes. Es gibt eine Menge solcher Felder in Cystal Reports.
Danach wird näher auf die Entwicklungsoberfläche von Crystal Reports eingegangen: Dan zeigt uns, das wir den Report mit aktuellen Daten im Vorschaumodus formatieren können, was eine gute Sache ist. Ein Bericht im hat im Entwurfsmodus Abschnitte wie Berichtskopf, Seitenkopf usw. – wie wir es auch vom VFP Report Designer kennen. Was wir allerdings bisher nicht in VFP haben, ist die Unterstützung für mehrere Abschnitte für Daten im Detailbereich.

Es ist möglich, mit der eingebauten Programmiersprache oder einer der anderen von Crystal Reports unterstützten Sprachen mächtige Reportfunktionen zu programmieren. Unter den anderen Programmiersprachen ist auch eine mit einer Basic-ähnlichen Syntax. Darüber hinaus zeigt uns Dan einige der beeindruckenden bedingten Formatiermöglichkeiten, die Crystal Reports bereitstellt. Er erzählt uns von der zusätzlichen Möglichkeit, Diagramme in Berichte einzubauen. Es gibt noch viel mehr zusätzliche Features in Crystal Reports, aber Dan meint, dass wir dafür einen weiteren zweistündigen Vortrag benötigen würden.
Eine Publikumsfrage bezieht sich auf die Möglichkeit, einen VFP Report in einen Crystal Report umzuwandeln. Dan antwortet, dass man dies mit Hilfe der offenen Architektur der beiden Umgebungen selbst machen kann. Ein Konverter kann auf einer Syntaxanalyse einer FRX-Datei unter Visual FoxPro basieren und dann muss man einen Report in Crystal Reports mit Hilfe seiner COM Schnittstelle generieren.
Am Schluss führt Dan eine Crystal Report ActiveX-Steuerelement für die Berichtsvorschau unter Visual FoxPro vor. Er zeigt uns, wie einfach das Element zu benutzen ist und wie die Vorschau eines Berichtes aussieht. Danach erklärt er, wie wir die Gestaltung des Vorschaufensters nach unserem Bedarf individuell anpassen können (z.B. Einfügen von versteckten Befehlsbuttons, die Anwender nicht sehen sollen) und präsentiert uns eine Liste der Ausgabeoptionen wie z.B. PDF, Microsoft Excel und viele andere. Er erklärt den Code in seiner VFP Klasse, den er erzeugt hat, um uns einen guten Start zu geben, wenn wir Crystal Reports benutzen möchten. Wie immer sind die Begleitdateien auf der Konferenz-CD erhältlich.