Avalon Formulare aus VFP verwenden - dFPUG

Werbung
WPF
Avalon Formulare
aus VFP verwenden
Venelina Jordanova
Uwe Habermann
[email protected]
[email protected]
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
WPF Layer
Single data field
value
VFP Layer
VFP Business rules classes
Data
request
Data
VFP Data Access
Database Layer
VFP
MS SQL
DB/2
Oracle
MySQL
Events handling
Call VFP methods
Single field data
Value request
Presentation
XAML code
Generic .Net object that renders XAML and gives feedback to VFP application for events
XAML
Benutzeroberfläche
.NET
WPF Manager DLL
VFP COM Server
Backend Provider DLL
VFP Exe-Datei
Steuerung
Geschäftslogik
Datenbank
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
Cancel closing – Yes/No
Fire LostFocus event
Field value
reference
Fire Closing event
WPFBackend.DLL
SetFieldValue()
Save?
CA object
Data
Data request
Data
VFP
Data Access
VFP code decides
Business rules and
what action to take:
process flow control object
start a new form
User Action:
Close button clicked
Send new value
VFP Business
rules classes
User Action:
Tab key pressed
BackendDataprovider object
GetFieldValue()
VFP Layer
Render
UI
Data request
Start WPF sub-form
WPF
form
Field value
User clicks a
toolbar button
Start WPF
Main form
WPF
Layer
Database Layer
Start
time
Process flow (object instantiating and events firing)
Data flow
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\v2.0.50727\
RegAsm.exe <DLL Path>\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
Herunterladen