Avant
propos
Introduction
PARTIE
1 : PowerBuilder
Chapitre 1 : Introduction à PowerBuilder
Chapitre 2 :
Les principaux aspects non orientés objet
Chapitre 3 :
Les classes orientées objet
Chapitre 4 :
La programmation événementielle
Chapitre 5 :
La programmation orientée objet
Chapitre 6 :
La datawindow
Chapitre 7 : La généricité
Chapitre 8 :
Programmation en interface événementielle : compléments
Chapitre 9 :
Programmation de l'infrastructure d'une application
Chapitre 10 :
Technique de développement de la superstructure d'une application
Chapitre 11 :
Qualité des développement : compléments
Chapitre 12 :
Nomenclature, documentation et lisibilité des développements
PARTIE
2 : Présentation d'un framework orienté objet
Chapitre
13 : Présentation générale
Chapitre
14 : Présentation des classes génériques
Chapitres
15 : Classe application du framework
Chapitre
16 : Exemple d'utilisation du framework
PARTIE
3 : Annexes PowerBuilder
Annexe 1 : Lecture
d'un fichier source
Annexe 2 : Évaluation
de charges d 'un projet en PowerBuilder
Annexe 3 : Utilisation
de l'aide
Annexe 4 : Utilisation
avancée de la fonction send()
PARTIE
4 : Annexes Framework
Annexe 1 : Normes
d'ergonomie
Annexe 2 : La
cinématique de l'implémentation des règles de gestion
Annexe 3 : Cas
d'utilisation
Annexe 4
: Conventions de présentation des règles de gestion traduites dans les objets
datwindow
Chapitre 1 : Introduction à PowerBuilder
Ce chapitre a pour objectif de présenter différents aspects
de PowerBuilder dont certains seront détaillés dans les
prochains chapitres. Ce chapitre permettra également d’introduire
un vocabulaire propre à PowerBuilder dont la signification n’est
pas forcément équivalente aux termes informatiques qui
ont été définis lors de la première partie.
Afin de rester cohérent nous retiendrons les termes définis
lors de la première partie en indiquant clairement la différence
avec les termes adoptés dans l’environnement PowerBuilder que
nous ne traduirons pas forcément de l’anglais. Dans ce cas, ces
termes seront indiqués en italique.
Le cadre de ce livre n’est pas lié à une version du produit
PowerBuilder. Cependant, c’est plus particulièrement à partir de la version
7 que tous
les concepts présentés pourront être réellement
mis en œuvre. Sinon, la présentation générale des
classes s’appuie sur les version 8 et 9, cette dernière version
n'étant pas différente de la 8 en ce qui concerne l'utilisation des
concepts qui vont être présentés.
|
- 1.1 C’est quoi PowerBuilder ?
1.2 Les grands ensembles qui composent le produit
1.3 Introduction aux principales classes systèmes
- 1.3.1 Les classes sans interface événementielle
- 1.3.2 Les classes à interface événementielle
1.3.3 Le mécanisme de l’encapsulation au niveau des classes
systèmes
- 1.4 Le langage PowerScript
- 1.4.1 La déclaration locale
1.4.2 La déclaration comme propriété d’une classe
1.4.3 La déclaration globale
1.4.4 Les fonctions et procédures
1.4.5 Les types énumérés
|
Chapitre 2 : Les principaux aspects non orientés objets
Ce chapitre a pour objectif de présenter certains aspects qui
ne sont pas orientés objets dans l’environnement PowerBuilder
et d’en apprécier leurs utilités. On distingue deux ensembles
:
- l’un, regroupe des classes systèmes qui ne permettent pas
de définir des classes programmeurs qui supportent, à
des degrés diverses, l’orientation objet. Ce chapitre va s’intéresser
principalement aux classes application et menu.
- l’autre ensemble, regroupe des notions diverses qui ne s’inscrivent
pas dans la hiérarchie des classes systèmes. Il s’agit
principalement de la notion de structure et la notion de routines
globales.
|
- 2.1 La classe application
2.2 Les classes programmeurs de type menu
- 2.2.1 L’enrichissement d’une classe menu
2.2.2 La communication avec la classe menu
- 2.3 Les routines globales et les structures
- 2.3.1 Les routines globales
2.3.2 Les structures
- 2.4 La surcharge des routines
- 2.4.1 La surcharge des routines non événementielles
2.4.2 La surcharge des routines événementielles
|
Chapitre 3 : Les classes orientées objets
Par héritage de classes systèmes le programmeur a la
possibilité de définir ses propres classes. Nous avons
appelés ces classes, classes programmeurs. Ce chapitre
a pour objectif de présenter les caractéristiques générales
de ces classes qui supportent l’orientation objet. Ce chapitre
introduit également la notion de classe locale. La programmation
orientée objet, proprement dite, s’appuiera sur ces classes.
Elle est présentée au chapitre 11.
|
- 3.1 Introduction
3.2 Les classes programmeurs fenêtres
- 3.2.1 Généralités
3.2.2 L’instanciation de la classe fenêtre
3.2.3 Les classes locales à une fenêtre
- 3.3 Les classes programmeurs associées à une fenêtre
- 3.3.1 Les classes programmeurs standard user object
3.3.2 La classe programmeur custom user object
- 3.4 Les classes systèmes et programmeurs non visuelles
- 3.4.1 Les classes custom nonvisual user objects
3.4.2 Les classes systèmes non visuelles
3.4.3 Les classes standards nonvisualobject user object
|
Chapitre 4 : La programmation événementielle
Ce chapitre a pour objectif de présenter les principaux aspects
liés à la programmation événementielle sous
PowerBuilder. Ces aspects seront par la suite de nombreuses fois évoqués
dans tous le reste de ce livre. La caractéristique essentielle
de la programmation événementielle est liée à
la notion d’événement et à son corollaire la routine
événementielle. La compréhension de la notion d’événement
et la bonne utilisation des routines événementielles qui
en découle font partie des aspects les plus complexes de l’environnement
PowerBuilder tant sont nombreuses les variantes et, par de là,
les possibilités offertes au programmeur
|
- 4.1 Les événements systèmes
- 4.1.1 Les caractéristiques des événements
systèmes
4.1.2 Les traitements associés aux routines événementielles
4.1.3 L’enrichissement de l’interface événementielle
avec une routine système
- 4.2 Les routines événementielles non systèmes
4.3 Les différentes formes d’appels d’une routine événementielle
- 4.3.1 L’appel statique direct
4.3.2 L’appel statique via la fonction triggerevent()
4.3.3 L’appel dynamique
4.3.4 Différents contextes d’appels de routines événementielles
4.3.5 L’appel dynamique des routines : discussion
- 4.4 Autres aspects de la programmation événementielle
- 4.4.1 La notion de file d’attente
4.4.2 Les routines événementielles et le principe d’encapsulation
4.4.3 L’enrichissement des interfaces événementielles
: discussion
|
Chapitre 5 : La programmation orientée objet
Ce chapitre a pour objectif de montrer comment est implémentée
la programmation orientée objet sur les classes programmeurs
qui ont été présentées au chapitre 10. Ce
chapitre est le parallèle au chapitre 4 et 5 appliqué
à l’environnement PowerBuilder. Il traite également de
l'aspect important qui est celui de la communication entre les classes
|
- 5.1 L’encapsulation
- 5.1.1 Les mécanisme communs de l’encapsulation
5.1.2 L’encapsulation au niveau des classes locales
- 5.2 L’héritage
- 5.2.1 L’enrichissement d’une classe
5.2.2 La spécialisation d’une classe
- 5.2.3 Le polymorphisme en PB
5.2.4 Autres aspects liés à l’héritage
- 5.4 La communication entre les classes
- 5.4.1 La
communication avec les classes non visuelles
- 5.4.2 La
communication entre les classes fenêtres
|
Chapitre 6 : La Datawindow
La datawindow que l’on pourrait se risquer à traduire par «
fenêtre de données », est un concept spécifique
à l’environnement PowerBuilder (c’est même un nom déposé).
Son importance est telle, dans le produit, qu’elle a une influence très
importante sur la qualité du logiciel développé
avec PowerBuilder. Dans ce chapitre, il va s’agir de « classer
» ce concept afin de l’intégrer le plus harmonieusement
possible dans les fondements théoriques développés
lors de la première partie.
|
- 6.1 Introduction
- 6.1.1 Définition de l’objet datawindow
6.1.2 Le fonctionnement de l’objet datawindow
6.1.3 Les principaux composants de l’objet datawindow
6.1.4 Définition du contrôle datawindow
6.1.5 Le datastore
- 6.2 L’utilité de la datawindow
- 6.2.1 Simplification de la mise à jour des données
6.2.2 Limitation du nombre d’objets
6.2.3 Fusion des concepts d’écrans et d’éditions
6.2.4 La datawindow et les règles de gestion
|
Chapitre 7 : La généricité
Ce chapitre a pour objectif de présenter différents moyens
de construire des traitements et des classes génériques
dans l’environnement PowerBuilder. Il est clair que la généricité
employée dans ce chapitre est directement liée à
la programmation orientée objet. Elle sera également liée
au contrôle datawindow ainsi qu’à l’objet datawindow.
|
- 7.1 Les différents traitements génériques
- 7.1.1 L’utilisation des termes génériques (pronouns)
7.1.2 L’appel de routines événementielles à
l’aveugle
7.1.3 Les traitements génériques liés à
l’objet datawindow
- 7.2 Les classes génériques
- 7.2.1 Généralités
7.2.2 Les différentes formes de généricité
|
Chapitre 8 : Programmation en interface événementielle : compléments
Ce chapitre a pour but de compléter la méthodologie
de programmation en interface événementielle dans le cadre de
PowerBuilder en rappelant et en formalisant un certain nombre de règles
que nous avons vu jusqu'à maintenant
|
8.1 Routines événementielles et non événementielles : synthèse des différences
8.2 La redéfinition des routines événementielles
8.2.1 La redéfinition événementielle associées
aux classes fenêtres
8.2.2 La redéfinition des routines événementielles associées aux
classes interactives de type
8.2.3. La redéfinition des routines événementielles
"redéfinissables
8.3 Compléments sur la déclaration d’une routine événementielle
|
Chapitre 9 : Programmation de l'infrastructure d'une application
Ce chapitre a pour objet d’apporter des compléments
méthodologiques afin d’aider le programmeur à construire
l’infrastructure de son application. Ces règles sont parmi les plus
importantes à respecter si l’on veut obtenir du logiciel de qualité. L’infrastructure
d’une application est composée de toutes les classes qui vont servir de
socle commun aux classes application. Elle se décompose en deux ensembles :
|
- 9.1 Les classes programmeur de base
- 9.1.1 Corollaire au principe de la classe de base
- 9.2 Les classes programmeurs génériques
- 9.2.1 Les classes génériques de type fenêtres
- 9.2.2 Les
classes génériques de type contrôle datawindow
- 9.2.3 L'implémentation de la communication entre la classe
d'accueil et ses classes locales
- 9.3 Les classes non visuelles
- 9.4 La gestion des messages à destination de l'utilisateur
|
Chapitre 10 : Techniques de développement de la superstructure d'une
application
La principale spécificité et difficulté des application de gestion
ce sont les règles de gestion. Il est donc importants d’en recenser
les différentes formes afin de centrer la programmation et la
conception sur celles-ci. C’est l’objet de ce chapitre
|
- 10.1 Superstructure d'une application :Introduction
- 10.2 L'implémentation
des règles de gestion
- 10.2.1 Le dialogue de base des règles de gestion
-
10.2.2 Les modifications dynamiques des masques de saisie
- 10.2.3 L'affectation de valeurs
- 10.2.4 La
cohérence de la saisie
- 10.3 Compléments divers
- 10.3.1 La gestion de césure écran/variables de programmes
-
12.3.2 La gestion des variables associées aux classes locales
- 10.3.3 La déclaration des routines externes
|
Chapitre 11 : Qualité des développement : compléments
Même
si le programmeur a respecté les recommandations des chapitres précédents,
certains aspects comme la gestion des erreurs et d’autres plus
intimement liées à PowerBuilder permettent
encore d’améliorer la qualité des développements. Ce chapitre a
pour objectif de les présenter.Certaines recommandations permettent
d’optimiser les performances d’une application réalisée avec
PowerBuilder. Compte tenu de l’évolution rapide du matériel, il faut
les considérer avec un regard critique et les relativiser en fonction
de la puissance des postes de travail utilisés. A chaque nouvelle
version de PowerBuilder, il faut aussi se renseigner pour savoir si
elles sont encore d’actualité.
|
- 11.1 La gestions des erreurs
- 11.1.1 Les erreurs systèmes de programmation
- 11.1.2 Les
erreurs de transaction
- 11.1.3 Les erreurs de programmation
- 11.2 Les bibliothèques
- 11.3 Particularités de certaines
routines systèmes
- 11.3.1 Les routines systèmes événementielles
11.3.2 Les routines systèmes non événementielles - 11.4
Optimisation des traitements
- 11.4.1 Les modifications graphiques
11.4.2 Optimisation de l’affichage du menu
11.4.3 Le passage d’arguments aux routines
11.4.4 Divers - 11.5 Optimisation de la datawindow
- 11.5.1 Le rapatriement des données
11.5.2 Partage des données en consultation
11.5.3 Les dropDownDatawindows
11.5.4 La datawindow et les procédures stockées
11.5.5 La datawindow et l’architecture client/serveur
11.5.5.1 Accès concurrents - 11.6 Divers
- 11.6.1 Aspects généraux liés à l’architecture client-serveur
11.6.2 L’utilisation artificielle des datastores
11.6.3 Saisie rapide
11.6.4 Sauvegarde des données
11.6.5 Mécanisme Check in / Check out
- 11.6.6
L'utilisation des onglets
|
Chapitre 12 : Nomenclature, documentation et lisibilité des
développements
Ce chapitre livre une suite de suggestions concernant la
nomenclature, la documentation et la lisibilité des programmes. Ces
suggestions seront intégralement respectées dans le cadre de la
troisième partie qui présente un framework orienté objet. Vues sous
cet angle, elles constituent une introduction à cette partie.
|
- 12.1 A propos de la nomenclature
- 12.1.1 La nomenclature des classes
12.1.2 Autres conventions de nomenclatures
- 12.2 La documentation interne
- 12.2.1 La documentation centrée sur les routines non événementielles
120.2.2 La documentation centrée sur les routines événementielles
- 12.3 Lisibilité des développements
- 12.3.1 Lisibilité des classes d’accueil
12.3.2 Instructions PowerScript
|