PowerBuilder,
Techniques avancées de développement

Ce livre présente et décrit les techniques de programmation les plus utiles, encapsulation, héritage, redéfinition, routines différées, polymorphisme, programmation à l'aveugle, généricité, afin de permettre au développeur d'exploiter au mieux la puissance de PowerBuilder. Il décrit également l'objet l'objet datawindow et l'implémentation des règles de gestion à l'aide de celui-ci. La deuxième partie présente, à travers un framework orienté objet, l'aboutissement de toute ces techniques, résultat d'une dizaine d'années de recherche et développement. Enfin, les annexes seront pour le développeur une aide précieuse pour naviguer dans les arcanes du produits.

A qui s'adresse ce livre ?

Auteur : Pascal DADONE
Editeur : ENI (collection Ressources Informatiques), Janvier 2004
Pages : 464

Prix : 27,14 €

Bibliographie

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 :

  • les classes programmeur de base ;

  • les classes programmeur génériques.
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 
 

 

  Retour page d'accueil