Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Agenda * Was ist WPF? * Architektur * Voraussetzungen beim Entwickler * Voraussetzungen beim Kunden * Beispiele Eigene Beispiele Avalon Patient Monitoring
Was wollen wir eigentlich? * VFP Anwendung * WPF Benutzeroberfläche * Mehrschichtenarchitektur * Fragen ? Jederzeit!
Windows Presentation Foundation * Technologie für Benutzeroberflächen * Enthalten im.NET Framework 3.0 * Benutzung aus Visual Studio einfach möglich * XAML Formulare * Viele Steuerelemente * Vererbung
Aus der Sicht von VFP * Formulare * Datenanbindung * Controlsource * Event Anbindung Interactivechange Valid
Konzept / Architektur * Mehrschichtenarchitetur * Entwicklungsumgebungen VFP * Möglichst viel Visual Studio * Möglichst wenig und generisch
Konzept / Architektur * Datenbank VFP, SQL Server, andere * Datenzugriff VFP Cursoradapter * Geschäftslogik VFP * Steuerung.NET DLL * Benutzeroberfläche XAML
VFP Layer VFP Business rules classes VFP Data Access Database Layer MS SQLMySQLOracleDB/2VFP Data Data request WPF Layer Generic.Net object that renders XAML and gives feedback to VFP application for events Events handling Call VFP methods Single field data Value request Single data field value Presentation XAML code
VFP Exe-Datei Steuerung Geschäftslogik Daten- bank.NET WPF Manager DLL XAML Benutzeroberfläche VFP COM Server Backend Provider DLL
Hauptprogramm, Rahmen * VFP Projekt * Datenzugriff * Geschäftslogik * Ansteuerung von WPF * unsichtbar
Benutzeroberfläche * MDI Interface Multiple Document Interface Steuerung mit Menü und/oder Symbolleiste * Sichtbarer Rahmen * Formulare
Ablauf * Start VFP Anwendung * Initialisierung Mittelschicht Komponenten * Datenanbindung * Anzeige der Benutzeroberfläche
VFP Layer VFP Business rules classes VFP Data Access Database Layer Data Data request WPF Layer Data Data request Start User clicks a toolbar button VFP code decides what action to take: start a new form CA object Business rules and process flow control object WPF form time BackendDataprovider object WPFBackend.DLL Process flow (object instantiating and events firing) Data flow Start WPF Main form Start WPF sub-form reference GetFieldValue() Send new value SetFieldValue() User Action: Tab key pressed Render UI Fire LostFocus event User Action: Close button clicked Fire Closing event Save? Cancel closing – Yes/No Field value
Geschäftslogik * Gewohntes VFP * Ereignisse aus der WPF Benutzeroberfläche steuern die Geschäftslogik
Datenzugriff * Gewohntes VFP * Cursoradapter Objektorientiert! * Alle unterstützen Datenbanken
Datenbank * VFP DBC * SQL Server * Andere ODBC OLE DB Muss mit Cursoradapter erreichbar sein
Data Binding * Controlsource in VFP * Definierte Eigenschaft Controlsource in WPF * Realisierung mit VFP COM Server
Event Binding * Reagieren auf Ereignisse * Beispiele: Valid, When, Gotfocus, Lostfocus, Interactivechange, Keypress, Init, Destroy, Click, Dblclick, Rightclick * WPF -> WPF Manager DLL -> VFP BackendDataProvider -> VFP cursor
Entwicklung der Benutzeroberfläche * Editor * Microsoft Expression Blend
Bereitstellung der Benutzeroberfläche * XAML Formulare in VFP Anwendung * WPF Manager DLL Schicht zwischen VFP und.NET Mit Visual Studio erstellt Anzeige der XAML Formulare
Voraussetzungen beim Entwickler * VFP 9 *.NET Framework 3.0 * Visual Studio 2008 * Expression Blend
Voraussetzungen beim Kunden *.NET Framework 3.0 Installierbar auf XP und 2003 Enthalten in Vista * WPF Manager DLL mit Regasm registrieren C:\WINDOWS\Microsoft.NET\Framework\v \ RegAsm.exe \WpfInterface.dll /codebase /tlb:WpfInterface.tlb * VFP Runtime * Dateien der Anwendung
Beispielanwendung Healthcare * Avalon Patient Monitoring * Optisch ansprechend * Keine Datenanbindung
Vielen Dank und viel Spaß mit WPF! Venelina & Uwe