PRADO
Erstellung wiederverwendbarer
  Enterprise-Webapplikationen
Carsten Lucke
                                         PRADO



Sprecher: Carsten Lucke
• Sofware-Ingenieur bei der sd&m A...
Carsten Lucke
                                        PRADO



Agenda
•   Architektur von (Web-)Clients
•   Kurze Einführu...
Carsten Lucke
                                     PRADO




              Agenda
> Architektur von (Web-)Clients
  Kurze ...
Carsten Lucke
                                    PRADO


Technische Infrastruktur von Web-Clients




                   ...
Carsten Lucke
                                                     PRADO


Technische Infrastruktur von Web-Clients
      ...
Carsten Lucke
                                                                    PRADO


Technische Infrastruktur von Web...
Carsten Lucke
                                       PRADO


Einblicke in eine Dialogarchitektur




                     ...
Carsten Lucke
                                                                       PRADO


Einblicke in eine Dialogarchi...
Carsten Lucke
                                                                          PRADO


Einblicke in eine Dialogar...
Carsten Lucke
                                                                          PRADO


Einblicke in eine Dialogar...
Carsten Lucke
                                                                                     PRADO


Einblicke in ei...
Carsten Lucke
                                     PRADO




              Agenda
  Architektur von (Web-)Clients
> Kurze ...
Carsten Lucke
                           PRADO



Was ist PRADO?
• Framework für Web-
  anwendungen in PHP5
• RAD-Ansatz
•...
Carsten Lucke
                        PRADO



PRADO Grundlagen
•   Eine PRADO-Seite
    besteht aus:




                ...
Carsten Lucke
                                                                  PRADO



PRADO Grundlagen
•   Eine PRADO-S...
Carsten Lucke
                                                              PRADO



PRADO Grundlagen
•   Eine PRADO-Seite...
Carsten Lucke
                                     PRADO




              Agenda
  Architektur von (Web-)Clients
  Kurze ...
Carsten Lucke
                                                       PRADO



Datenzustände „php-only“
           <form
  ...
Carsten Lucke
                            PRADO


Datenzustände „php-only“
 •   Ausgangszustand der
     Maske




       ...
Carsten Lucke
                                 PRADO


Datenzustände „php-only“
 •   Ausgangszustand der
     Maske



 • ...
Carsten Lucke
                                 PRADO


Datenzustände „php-only“
 •   Ausgangszustand der
     Maske



 • ...
Carsten Lucke
                                                  PRADO



Datenzustände bei PRADO

<com:TForm>
   <com:TTex...
Carsten Lucke
                            PRADO


Datenzustände bei PRADO
 •   Ausgangszustand der
     Maske




        ...
Carsten Lucke
                                 PRADO


Datenzustände bei PRADO
 •   Ausgangszustand der
     Maske


 •   ...
Carsten Lucke
                                 PRADO


Datenzustände bei PRADO
 •   Ausgangszustand der
     Maske


 •   ...
Carsten Lucke
                                                                       PRADO



Data-Binding
               ...
Carsten Lucke
                                                                       PRADO



Data-Binding
               ...
Carsten Lucke
                                                                               PRADO



Data-Binding
       ...
Carsten Lucke
                                                                               PRADO



Data-Binding
       ...
Carsten Lucke
                                                                               PRADO



Data-Binding
       ...
Carsten Lucke
                                                                               PRADO



Data-Binding
       ...
Carsten Lucke
                           PRADO


Data-Binding „php-only“




                                    16
Carsten Lucke
                           PRADO


Data-Binding „php-only“




                                    16
Carsten Lucke
                           PRADO


Data-Binding „php-only“




                                    16
Carsten Lucke
                           PRADO


Data-Binding „php-only“




                                    16
Carsten Lucke
                                                                             PRADO


 Data-Binding „php-only...
Carsten Lucke
                          PRADO


Data-Binding bei PRADO




                                   17
Carsten Lucke
                          PRADO


Data-Binding bei PRADO




                                   17
Carsten Lucke
                                                                             PRADO


  Data-Binding bei PRAD...
Carsten Lucke
                                                                                          PRADO


    Data-B...
Carsten Lucke
                                     PRADO




              Agenda
  Architektur von (Web-)Clients
  Kurze ...
Carsten Lucke
                                                                        PRADO



Event-Binding
             ...
Carsten Lucke
                                                                        PRADO



Event-Binding
             ...
Carsten Lucke
                                                                                PRADO



Event-Binding
• Wer...
Carsten Lucke
                                                                                  PRADO



Event-Binding
• W...
Carsten Lucke
                                                                          PRADO


Event-Binding
            ...
Carsten Lucke
                                                                          PRADO


Event-Binding
            ...
Carsten Lucke
                                                                                  PRADO


Event-Binding
    ...
Carsten Lucke
                                                                                      PRADO


Event-Binding
...
Carsten Lucke
                                                                            PRADO


Event-Binding „php-only“...
Carsten Lucke
                                                                               PRADO


Event-Binding „php-on...
Carsten Lucke
                                                                            PRADO


Event-Binding „php-only“...
Carsten Lucke
                                                                                    PRADO


Event-Binding „p...
Carsten Lucke
                                                                                    PRADO


Event-Binding „p...
Carsten Lucke
                                                                            PRADO


Event-Binding mit PRADO
...
Carsten Lucke
                                                                             PRADO


Event-Binding mit PRADO...
Carsten Lucke
                                                                         PRADO


Event-Binding mit PRADO
   ...
Carsten Lucke
                                                                         PRADO


Event-Binding mit PRADO
   ...
Carsten Lucke
                                                                           PRADO


Event-Binding mit PRADO
 ...
Carsten Lucke
                                     PRADO




              Agenda
  Architektur von (Web-)Clients
  Kurze ...
Carsten Lucke
                                                                        PRADO



State-Binding
             ...
Carsten Lucke
                                                                        PRADO



State-Binding
             ...
Carsten Lucke
                                                                               PRADO



State-Binding
      ...
Carsten Lucke
                                                                                 PRADO



State-Binding
    ...
Carsten Lucke
                                                                                 PRADO



State-Binding
    ...
Carsten Lucke
                            PRADO



State-Binding „php-only“




                                     25
Carsten Lucke
                                                      PRADO



State-Binding „php-only“
  •   Aktive/inaktiv...
Carsten Lucke
                                                            PRADO



State-Binding „php-only“
  •   Aktive/i...
Carsten Lucke
                           PRADO



State-Binding bei PRADO




                                    26
Carsten Lucke
                                                    PRADO



State-Binding bei PRADO
 •   Aktive/inaktive GU...
Carsten Lucke
                                                           PRADO



State-Binding bei PRADO
 •   Aktive/inak...
Carsten Lucke
                                     PRADO




              Agenda
  Architektur von (Web-)Clients
  Kurze ...
Carsten Lucke
                                              PRADO


PRADO und Wiederverwendbarkeit
• Jede PRADO-Komponente...
Carsten Lucke
                                  PRADO




Vielen Dank für Ihre Aufmerksamkeit!

        Haben Sie Fragen?
...
Nächste SlideShare
Wird geladen in …5
×

PRADO - Erstellung wiederverwendbarer Enterprise-Applikationen

2.675 Aufrufe

Veröffentlicht am

This is a talk I gave at the International PHP Conference 2007 - Spring Edition in Ludwigsburg, Germany. The talk covers archtiectural aspects of client-development. The main focus is the comparison of data-, event- and state-binding concepts in PHP-only and PRADO based applications.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.675
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
47
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

PRADO - Erstellung wiederverwendbarer Enterprise-Applikationen

  1. 1. PRADO Erstellung wiederverwendbarer Enterprise-Webapplikationen
  2. 2. Carsten Lucke PRADO Sprecher: Carsten Lucke • Sofware-Ingenieur bei der sd&m AG, München • Aktives Mitglied der sd&m Client- Community • PEAR und PECL Entwickler • Schreibt für Fachzeitschriften/-bücher über diverse PHP-Themen 2
  3. 3. Carsten Lucke PRADO Agenda • Architektur von (Web-)Clients • Kurze Einführung in PRADO • Data-Binding in Web-Clients • Event-Binding in Web-Clients • State-Binding in Web-Clients • Wiederverwendung von Komponenten 3
  4. 4. Carsten Lucke PRADO Agenda > Architektur von (Web-)Clients Kurze Einführung in PRADO Data-Binding in Web-Clients Event-Binding in Web-Clients State-Binding in Web-Clients Wiederverwendung von Komponenten 4
  5. 5. Carsten Lucke PRADO Technische Infrastruktur von Web-Clients 5
  6. 6. Carsten Lucke PRADO Technische Infrastruktur von Web-Clients PC Client (Browser-Teil) Webserver Client (Server-Teil) Application- server Anwendungskern Persistenz DB-Server Datenbank 5
  7. 7. Carsten Lucke PRADO Technische Infrastruktur von Web-Clients PC Client (Browser-Teil) Webserver Client (Server-Teil) Synchronisation der Zustände notwendig Application- server Anwendungskern Persistenz DB-Server Datenbank 5
  8. 8. Carsten Lucke PRADO Einblicke in eine Dialogarchitektur 6
  9. 9. Carsten Lucke PRADO Einblicke in eine Dialogarchitektur GUI-Bibliothek (JSF, PRADO, Tapestry, ...) Dialog Präsentation Dialoglogik 6
  10. 10. Carsten Lucke PRADO Einblicke in eine Dialogarchitektur GUI-Bibliothek (JSF, PRADO, Tapestry, ...) Dialog Präsentation Präsentations- daten Dialoglogik Datenhaltung 6
  11. 11. Carsten Lucke PRADO Einblicke in eine Dialogarchitektur GUI-Bibliothek (JSF, PRADO, Tapestry, ...) Dialog Präsentation Präsentations- Präsentations- daten ereignisse Dialoglogik Aktions- Datenhaltung verarbeitung 6
  12. 12. Carsten Lucke PRADO Einblicke in eine Dialogarchitektur GUI-Bibliothek (JSF, PRADO, Tapestry, ...) Dialog Präsentation Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 6
  13. 13. Carsten Lucke PRADO Agenda Architektur von (Web-)Clients > Kurze Einführung in PRADO Data-Binding in Web-Clients Event-Binding in Web-Clients State-Binding in Web-Clients Wiederverwendung von Komponenten 7
  14. 14. Carsten Lucke PRADO Was ist PRADO? • Framework für Web- anwendungen in PHP5 • RAD-Ansatz • Programmierparadigma: • komponenten-basiert • ereignisgesteuert 8
  15. 15. Carsten Lucke PRADO PRADO Grundlagen • Eine PRADO-Seite besteht aus: 9
  16. 16. Carsten Lucke PRADO PRADO Grundlagen • Eine PRADO-Seite besteht aus: <com:TLabel ForControl=quot;uidquot; Text=quot;Username:quot; /> <com:TTextBox ID=quot;uidquot; /> • einem .page File für <com:TLabel ForControl=quot;pwquot; Text=quot;Password:quot; /> die GUI <com:TTextBox ID=quot;pwquot; TextMode=quot;Passwordquot; /> <com:TButton Text=quot;Loginquot; ID=quot;submitquot; OnClick=quot;loginClickedquot; /> 9
  17. 17. Carsten Lucke PRADO PRADO Grundlagen • Eine PRADO-Seite besteht aus: • einem .page File für class LoginPage extends TPage { die GUI .... } • einem .php File für die fachliche Logik 9
  18. 18. Carsten Lucke PRADO Agenda Architektur von (Web-)Clients Kurze Einführung in PRADO > Data-Binding in Web-Clients Event-Binding in Web-Clients State-Binding in Web-Clients Wiederverwendung von Komponenten 10
  19. 19. Carsten Lucke PRADO Datenzustände „php-only“ <form action=quot;<?php echo $_SERVER['PHP_SELF']; ?>quot; method=quot;postquot; > <input type=quot;textquot; name=quot;demoValuequot; /> <input type=quot;submitquot; value=quot;Continue &rarr;quot; /> </form> <pre> <?php print_r($_REQUEST); ?> </pre> 11
  20. 20. Carsten Lucke PRADO Datenzustände „php-only“ • Ausgangszustand der Maske 12
  21. 21. Carsten Lucke PRADO Datenzustände „php-only“ • Ausgangszustand der Maske • Eingabe eines Wertes und nachfolgend Klick auf „Continue“ 12
  22. 22. Carsten Lucke PRADO Datenzustände „php-only“ • Ausgangszustand der Maske • Eingabe eines Wertes und nachfolgend Klick auf „Continue“ • „POST-back“ Zustand 12
  23. 23. Carsten Lucke PRADO Datenzustände bei PRADO <com:TForm> <com:TTextBox ID=quot;demoValuequot; /> <com:TButton Text=quot;Continue &rarr;quot; /> </com:TForm> <pre> <com:TExpression Expression=quot;print_r($_REQUEST, true)quot; /> </pre> 13
  24. 24. Carsten Lucke PRADO Datenzustände bei PRADO • Ausgangszustand der Maske 14
  25. 25. Carsten Lucke PRADO Datenzustände bei PRADO • Ausgangszustand der Maske • Eingabe eines Wertes und nachfolgend Klick auf „Continue“ 14
  26. 26. Carsten Lucke PRADO Datenzustände bei PRADO • Ausgangszustand der Maske • Eingabe eines Wertes und nachfolgend Klick auf „Continue“ • „POST-back“ Zustand 14
  27. 27. Carsten Lucke PRADO Data-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) Dialog Präsentation Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 15
  28. 28. Carsten Lucke PRADO Data-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) Dialog Präsentation Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 15
  29. 29. Carsten Lucke PRADO Data-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) • Synchronisation zwischen Präsen- Dialog Präsentation tationsdaten und Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialogdatenhaltung Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 15
  30. 30. Carsten Lucke PRADO Data-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) • Synchronisation zwischen Präsen- Dialog Präsentation tationsdaten und Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialogdatenhaltung • Konvertierung Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 15
  31. 31. Carsten Lucke PRADO Data-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) • Synchronisation zwischen Präsen- Dialog Präsentation tationsdaten und Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialogdatenhaltung • Konvertierung Dialoglogik • Formatierung Aktions- Dialog- Datenhaltung verarbeitung zustände 15
  32. 32. Carsten Lucke PRADO Data-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) • Synchronisation zwischen Präsen- Dialog Präsentation tationsdaten und Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialogdatenhaltung • Konvertierung Dialoglogik • Formatierung Aktions- Dialog- Datenhaltung verarbeitung zustände • Validierung 15
  33. 33. Carsten Lucke PRADO Data-Binding „php-only“ 16
  34. 34. Carsten Lucke PRADO Data-Binding „php-only“ 16
  35. 35. Carsten Lucke PRADO Data-Binding „php-only“ 16
  36. 36. Carsten Lucke PRADO Data-Binding „php-only“ 16
  37. 37. Carsten Lucke PRADO Data-Binding „php-only“ <form action=quot;<?php echo $_SERVER['PHP_SELF']; ?>quot; method=quot;postquot;> <div> <label for=quot;usernamequot;>Username:</label> <input type=quot;textquot; name=quot;usernamequot; value=quot;<?php if(isset($_POST['username'])){ echo $_POST['username'];}?>quot; /> </div> <div> <label for=quot;passwordquot;>Password:</label> <input type=quot;passwordquot; name=quot;passwordquot; /> </div> <input type=quot;submitquot; name=quot;submitquot; id=quot;submitquot; value=quot;Login &rarr;quot; /> </form> <?php if (isset($_POST['submit'])) { ?> <div id=quot;resultquot;> <?php if ($_POST['username'] === 'luckec' && $_POST['password'] === 'test') { echo 'Access granted for ' . $_POST['username']; } else { echo 'Access denied for ' . $_POST['username']; } ?> </div> <?php } ?> 16
  38. 38. Carsten Lucke PRADO Data-Binding bei PRADO 17
  39. 39. Carsten Lucke PRADO Data-Binding bei PRADO 17
  40. 40. Carsten Lucke PRADO Data-Binding bei PRADO <com:TForm> <div> <com:TLabel ForControl=quot;usernamequot; Text=quot;Username:quot; /> <com:TTextBox ID=quot;usernamequot; /> </div> <div> <com:TLabel ForControl=quot;passwordquot; Text=quot;Password:quot; /> <com:TTextBox ID=quot;passwordquot; TextMode=quot;Passwordquot; /> </div> <com:TButton Text=quot;Login &rarr;quot; ID=quot;submitquot; OnClick=quot;loginClickedquot; /> </com:TForm> <com:TPanel ID=quot;loginResultPanelquot;> <com:TLabel ID=quot;loginResultLabelquot; /> </com:TPanel> 17
  41. 41. Carsten Lucke PRADO Data-Binding bei PRADO <com:TForm> <div> <com:TLabel ForControl=quot;usernamequot; Text=quot;Username:quot; /> <com:TTextBox ID=quot;usernamequot; /> </div> <div> <com:TLabel ForControl=quot;passwordquot; Text=quot;Password:quot; /> <com:TTextBox ID=quot;passwordquot; TextMode=quot;Passwordquot; /> </div> <com:TButton Text=quot;Login &rarr;quot; ID=quot;submitquot; OnClick=quot;loginClickedquot; /> </com:TForm> <com:TPanel ID=quot;loginResultPanelquot;> <com:TLabel ID=quot;loginResultLabelquot; /> </com:TPanel> class DataBinding extends TPage { public function loginClicked($sender, $param) { $this->loginResultPanel->setVisible(true); if ($this->username->Text === 'luckec' && $this->password->Text === 'test') { $this->loginResultLabel->Text = 'Access granted for ' . $username; } else { $this->loginResultLabel->Text = 'Access denied for ' . $username; } } 17 }
  42. 42. Carsten Lucke PRADO Agenda Architektur von (Web-)Clients Kurze Einführung in PRADO Data-Binding in Web-Clients > Event-Binding in Web-Clients State-Binding in Web-Clients Wiederverwendung von Komponenten 18
  43. 43. Carsten Lucke PRADO Event-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) Dialog Präsentation Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 19
  44. 44. Carsten Lucke PRADO Event-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) Dialog Präsentation Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 19
  45. 45. Carsten Lucke PRADO Event-Binding • Wertschöpfungskette GUI-Bibliothek (JSF, PRADO, Tapestry, ...) von Ereignissen Dialog Präsentation Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 19
  46. 46. Carsten Lucke PRADO Event-Binding • Wertschöpfungskette GUI-Bibliothek (JSF, PRADO, Tapestry, ...) von Ereignissen Dialog Präsentation • Präsentation- Präsentations- Präsentations- Präsentations- sereignisse ziehen daten ereignisse zustände i.d.R. Dialogereig- nisse nach sich Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 19
  47. 47. Carsten Lucke PRADO Event-Binding Quicksearch: <enter searchterm> Search • Lastname Firstname Blankerts Arne Kleine Frank Lucke Carsten Mordziol Sebastian Schaufelberger Gerd Schmidt Stephan - + 20
  48. 48. Carsten Lucke PRADO Event-Binding Suchergebnis einschränken Quicksearch: <enter searchterm> Search • Lastname Firstname Blankerts Arne Kleine Frank Lucke Carsten Mordziol Sebastian Schaufelberger Gerd Schmidt Stephan - + 20
  49. 49. Carsten Lucke PRADO Event-Binding Suchergebnis einschränken Editieren von Quicksearch: <enter searchterm> Search Einträgen • Lastname Firstname Blankerts Arne Kleine Frank Lucke Carsten Mordziol Sebastian Schaufelberger Gerd Schmidt Stephan - + 20
  50. 50. Carsten Lucke PRADO Event-Binding Suchergebnis einschränken Editieren von Quicksearch: <enter searchterm> Search Einträgen • Lastname Firstname Blankerts Arne Kleine Frank Lucke Carsten Mordziol Sebastian Schaufelberger Gerd Schmidt Stephan - + Hinzufügen/Löschen von Einträgen 20
  51. 51. Carsten Lucke PRADO Event-Binding „php-only“ Quicksearch: <enter searchterm> Search • Lastname Firstname Blankerts Arne Kleine Frank Lucke Carsten Mordziol Sebastian Schaufelberger Gerd Schmidt Stephan - + 21
  52. 52. Carsten Lucke PRADO Event-Binding „php-only“ <form name=quot;tablequot; action=quot;<?php ... ?>quot; method=quot;postquot;> Quicksearch: <enter searchterm> Search • Lastname Firstname Blankerts Arne Kleine Frank Lucke Carsten Mordziol Sebastian Schaufelberger Gerd Schmidt Stephan - + 21 </form>
  53. 53. Carsten Lucke PRADO Event-Binding „php-only“ <form name=quot;tablequot; action=quot;<?php ... ?>quot; method=quot;postquot;> Quicksearch: <enter searchterm> Search Quicksearch: <enter searchterm> Search <input type=quot;textquot; name=quot;inpQuickSearchquot; value=quot;<?php ...?>quot; /> <input type=quot;submitquot; name=quot;quicksearchquot; value=quot;Searchquot; /> • Lastname Firstname Blankerts Arne Kleine Frank Lucke Carsten Mordziol Sebastian Schaufelberger Gerd Schmidt Stephan - + 21 </form>
  54. 54. Carsten Lucke PRADO Event-Binding „php-only“ <form name=quot;tablequot; action=quot;<?php ... ?>quot; method=quot;postquot;> Quicksearch: <enter searchterm> Search Quicksearch: <enter searchterm> Search <input type=quot;textquot; name=quot;inpQuickSearchquot; value=quot;<?php ...?>quot; /> <input type=quot;submitquot; name=quot;quicksearchquot; value=quot;Searchquot; /> <table> • Lastname Firstname <?php foreach($persons as $line) { <tr> Blankerts Arne <td><input type=quot;checkboxquot; value=quot;<?php ...?>quot; name=quot;...quot; /></td> <td> Kleine Frank <a Lucke href=quot;edit.php?userId=<?php ... ?>quot;> Carsten <img src=quot;edit.pngquot; /> Mordziol Sebastian </a> </td> Schaufelberger Gerd <td><?php echo $line['lastname']; ?></td> Schmidt Stephan <td><?php echo $line['firstname']; ?></td> </tr> } ?> </table> - + 21 </form>
  55. 55. Carsten Lucke PRADO Event-Binding „php-only“ <form name=quot;tablequot; action=quot;<?php ... ?>quot; method=quot;postquot;> Quicksearch: <enter searchterm> Search Quicksearch: <enter searchterm> Search <input type=quot;textquot; name=quot;inpQuickSearchquot; value=quot;<?php ...?>quot; /> <input type=quot;submitquot; name=quot;quicksearchquot; value=quot;Searchquot; /> <table> • Lastname Firstname <?php foreach($persons as $line) { <tr> Blankerts Arne <td><input type=quot;checkboxquot; value=quot;<?php ...?>quot; name=quot;...quot; /></td> <td> Kleine Frank <a Lucke href=quot;edit.php?userId=<?php ... ?>quot;> Carsten <img src=quot;edit.pngquot; /> Mordziol Sebastian </a> </td> Schaufelberger Gerd <td><?php echo $line['lastname']; ?></td> Schmidt Stephan <td><?php echo $line['firstname']; ?></td> </tr> } ?> </table> <input type=quot;submitquot; name=quot;removequot; value=quot;-quot; /> - + - + <input type=quot;submitquot; name=quot;addquot; value=quot;+quot; /> 21 </form>
  56. 56. Carsten Lucke PRADO Event-Binding mit PRADO Quicksearch: <enter searchterm> Search • Lastname Firstname Blankerts Arne Kleine Frank Lucke Carsten Mordziol Sebastian Schaufelberger Gerd Schmidt Stephan - + 22
  57. 57. Carsten Lucke PRADO Event-Binding mit PRADO <com:TForm> Quicksearch: <enter searchterm> Search • Lastname Firstname Blankerts Arne Kleine Frank Lucke Carsten Mordziol Sebastian Schaufelberger Gerd Schmidt Stephan - + </com:TForm> 22
  58. 58. Carsten Lucke PRADO Event-Binding mit PRADO <com:TForm> Quicksearch: <enter searchterm> Search Search <com:TTextBox ID=quot;inpQuickSearchquot; /> <com:TButton Text=quot;Searchquot; OnClick=quot;btnQuickSearchClickedquot; /> • Lastname Firstname Blankerts Arne Kleine Frank Lucke Carsten Mordziol Sebastian Schaufelberger Gerd Schmidt Stephan - + </com:TForm> 22
  59. 59. Carsten Lucke PRADO Event-Binding mit PRADO <com:TForm> Quicksearch: <enter searchterm> Search Search <com:TTextBox ID=quot;inpQuickSearchquot; /> <com:TButton Text=quot;Searchquot; OnClick=quot;btnQuickSearchClickedquot; /> <com:TDataGrid ID=quot;DataGridquot; OnItemCreated=quot;itemCreatedquot; • Lastname Firstname OnEditCommand=quot;editItemquot; Blankerts Arne ... > Kleine Frank <com:TCheckBoxColumn DataField=quot;checkedquot; ... /> Lucke Carsten <com:TEditCommandColumn ... /> Mordziol Sebastian <com:TBoundColumn Schaufelberger Gerd HeaderText=quot;Nachnamequot; DataField=quot;lastnamequot; /> Schmidt Stephan <com:TBoundColumn HeaderText=quot;Vornamequot; DataField=quot;firstnamequot; /> </com:TDataGrid> - + </com:TForm> 22
  60. 60. Carsten Lucke PRADO Event-Binding mit PRADO <com:TForm> Quicksearch: <enter searchterm> Search Search <com:TTextBox ID=quot;inpQuickSearchquot; /> <com:TButton Text=quot;Searchquot; OnClick=quot;btnQuickSearchClickedquot; /> <com:TDataGrid ID=quot;DataGridquot; OnItemCreated=quot;itemCreatedquot; • Lastname Firstname OnEditCommand=quot;editItemquot; Blankerts Arne ... > Kleine Frank <com:TCheckBoxColumn DataField=quot;checkedquot; ... /> Lucke Carsten <com:TEditCommandColumn ... /> Mordziol Sebastian <com:TBoundColumn Schaufelberger Gerd HeaderText=quot;Nachnamequot; DataField=quot;lastnamequot; /> Schmidt Stephan <com:TBoundColumn HeaderText=quot;Vornamequot; DataField=quot;firstnamequot; /> </com:TDataGrid> <com:TButton Text=quot;-quot; OnClick=quot;btnPersonDelClickedquot; /> - + <com:TButton Text=quot;+quot; OnClick=quot;btnPersonAddClickedquot; /> </com:TForm> 22
  61. 61. Carsten Lucke PRADO Agenda Architektur von (Web-)Clients Kurze Einführung in PRADO Data-Binding in Web-Clients Event-Binding in Web-Clients > State-Binding in Web-Clients Wiederverwendung von Komponenten 23
  62. 62. Carsten Lucke PRADO State-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) Dialog Präsentation Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 24
  63. 63. Carsten Lucke PRADO State-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) Dialog Präsentation Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 24
  64. 64. Carsten Lucke PRADO State-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) • Visualisierung des Dialog Dialogzustands Präsentation Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 24
  65. 65. Carsten Lucke PRADO State-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) • Visualisierung des Dialog Dialogzustands Präsentation • Edit/Display Modus Präsentations- Präsentations- Präsentations- daten ereignisse zustände Dialoglogik Aktions- Dialog- Datenhaltung verarbeitung zustände 24
  66. 66. Carsten Lucke PRADO State-Binding GUI-Bibliothek (JSF, PRADO, Tapestry, ...) • Visualisierung des Dialog Dialogzustands Präsentation • Edit/Display Modus Präsentations- Präsentations- Präsentations- daten ereignisse zustände • Dialogkontext- abhängige Darstel- Dialoglogik lung von Elementen Aktions- Dialog- Datenhaltung verarbeitung zustände 24
  67. 67. Carsten Lucke PRADO State-Binding „php-only“ 25
  68. 68. Carsten Lucke PRADO State-Binding „php-only“ • Aktive/inaktive GUI- 123,34 123,34 Elemente <input type=quot;textquot; <?php echo quot;disabledquot;; ?> /> 25
  69. 69. Carsten Lucke PRADO State-Binding „php-only“ • Aktive/inaktive GUI- 123,34 123,34 Elemente <input type=quot;textquot; <?php echo quot;disabledquot;; ?> /> • Dynamische Auswahl von 123,34 123,34 GUI-Elementen 324,422 23223 <?php if ($short_text) { ?> <input type=quot;textquot; ... /> <?php } else { ?> <textarea name=quot;fooquot; rows=quot;8quot; cols=quot;40quot;> </textarea> <?php } ?> 25
  70. 70. Carsten Lucke PRADO State-Binding bei PRADO 26
  71. 71. Carsten Lucke PRADO State-Binding bei PRADO • Aktive/inaktive GUI- 123,34 123,34 Elemente $this->myTextbox->Enabled = false; 26
  72. 72. Carsten Lucke PRADO State-Binding bei PRADO • Aktive/inaktive GUI- 123,34 123,34 Elemente $this->myTextbox->Enabled = false; • Dynamische Auswahl von 123,34 123,34 GUI-Elementen 324,422 23223 if ($short_text) { $this->myTextbox->TextMode = TTextBoxMode::SingleLine; } else { $this->myTextbox->TextMode = TTextBoxMode::MultiLine; } 26
  73. 73. Carsten Lucke PRADO Agenda Architektur von (Web-)Clients Kurze Einführung in PRADO Data-Binding in Web-Clients Event-Binding in Web-Clients State-Binding in Web-Clients > Wiederverwendung von Komponenten 27
  74. 74. Carsten Lucke PRADO PRADO und Wiederverwendbarkeit • Jede PRADO-Komponente (TComponent) ist an sich wiederverwendbar Im Speziellen: • Controls (TControl) • Modules (TModule) Außerdem: Wahrscheinlichkeit zur Wiederverwendung von fachlichem Code deutlich höher durch saubere Trennung von Präsentation und Geschäftslogik 28
  75. 75. Carsten Lucke PRADO Vielen Dank für Ihre Aufmerksamkeit! Haben Sie Fragen? http://lucke.info 29

×