# PowerBuilder

Powerbuilder est un langage de programmation et un environnement de développement intégré initialement développé par PowerSoft, rachetée par Sybase en 1994. SAP a ensuite racheté Sybase en 2010, qui en 2016 a confié son évolution à Appeon.
C'est un langage semi-compilé, orienté objet, générant du P-Code pour les applications desktop et du C# pour les API Web REST. Il est utilisé principalement pour des applications de gestion ayant de nombreuses interactions avec une base de données. Il est disponible sous Windows. Bien qu'on parle souvent d'un langage orienté objet, sa structure est très adaptée à la communication entre fenêtre et base de données, au développement orienté objet, et au passage de paramètres. PowerBuilder est interfaçable avec PowerDesigner (ex-PowerAMC), un outil de modélisation orienté objets également propriété de SAP. Les fonctionnalités orientées objet de PowerBuilder sont limitées à certains types d'objets (Fenêtres, UserObjets, menus), à l'exclusion des autres types d'objets, dont les datawindows,
Le principe central de Powerbuilder est la standardisation du dialogue avec les bases de données à l'aide de datawindows et la possibilité d'utiliser du langage SQL directement dans le langage PowerScript.

## DataWindow

Une DataWindow est un composant logiciel qui présente dans une fenêtre les données issues d'une base de données SQL. Ce composant gère automatiquement l'affichage, la création, la modification et la suppression de données dans la table concernée. Ses formes de présentation diverses lui permettent d'être utilisée en liste, en forme libre, en rapport, etc.

## Obtenir de l'aide

Il existe plusieurs moyens d'obtenir de l'aide. Appeon Community (Anglophone) et PowerBuilder à donf (Francophone).

## Tests

Il est possible de faire des tests unitaires sur les projets PowerBuilder à l'aide de PBUnit.
On peut aussi automatiser les tests de non regression d'une IHM PowerBuilder avec AscentialTest.

## Automatisation

Il est possible d'automatiser la compilation d'une application PowerBuilder sans utiliser l'environnement graphique via "OrcaScript".
"OrcaScript" est un langage script permettant d'interagir avec le compilateur PowerBuilder, et les sources d'une application. En outre, il peut aussi s'interfacer avec tout système de contrôle de version compatible avec PowerBuilder afin par exemple, de récupérer la dernière version de l'application avant de la compiler.

## Fonctionnalités
### Interfaces SGBD

PowerBuilder offre des interfaces natives pour toutes les principales bases de données, ainsi que ODBC et OLE-DB, dans la version Enterprise. Il existe de nombreuses options de connectivité qui permettent de contrôler et d'ajuster les performances, par exemple :
* Sécurité intégrée
* Traçage de tous les SQL
* Niveau d'isolation
* Boîte de dialogue d'expiration de mot de passe
* Facteur de blocage
* Nombre d'instructions SQL à mettre en cache
* Utilisation de pool de connexion
* Sécurité des threads
* Traçage des appels ODBC API

### SQL embarqué

Le SQL embarqué supporte les commandes SELECT, INSERT, UPDATE, DELETE et les curseurs. Cette option est utilisée lorsque le développeur requiert davantage de contrôle que celui disponible avec la DataWindow. Exemple :

### SQL Dynamique

Il s'agit d'une forme de SQL paramétré, où l'utilisateur construit une chaîne de caractères qui peut éventuellement comporter des variables de liaison. Le SQL dynamique peut également être utilisé pour créer des curseurs.

### Intégration avec des logiciels tiers

PowerBuilder supporte les contrôles ActiveX et OCX, visibles et non visibles. Il peut également utiliser OLE Automation en tant que client. Cependant, PowerBuilder ne supporte que la liaison tardive, pas la liaison précoce. Par conséquent, lors de l'utilisation d'OLE Automation, une liste déroulante des actions possibles n'est pas fournie. PowerBuilder peut également agir comme un client ou un serveur DDE, fournissant un mécanisme supplémentaire pour interagir avec d'autres applications.
PowerBuilder peut faire des appels d'API Windows et tierces et, en général, fonctionne bien avec des bibliothèques tierces dans des fichiers DLL, mais il ne supporte pas directement les fonctions de callback.

### Compilation et débuggage

PowerBuilder offre un commutateur d'exécution "/pbdebug" (ou variantes : "-pbdebug", "-pbd", "/debug", "-debug", "-deb"), qui crée un journal. Ce mécanisme permet de retrouver un bug en cours d'exécution, car l'utilisateur envoie simplement ce log au développeur. Une autre fonctionnalité permet d'enregistrer toutes les instructions SQL dans un fichier. PowerBuilder dispose également d'un profilage des performances intégré, d'un debugger intégré, d'une aide contextuelle et d'un groupe de discussion actif.

## Historique

La première version de PowerBuilder a été publiée par PowerSoft en juillet 1991 avant d'être repris par Sybase en 1994. PowerBuilder entre dans le catalogue SAP après le rachat de Sybase en 2010.
En décembre 2013, SAP a annoncé que la nouvelle version passait directement au numéro 15 et a publié une version bêta[12]. Les principales fonctionnalités comprenaient la prise en charge de .NET Framework v4.5, SQL Server 2012, Oracle 12, Windows 8, OData et Dockable Windows. SAP a ensuite publié cette version en tant que version 12.6.
Depuis 2016, PowerBuilder est développé par Appeon.
Le 31 mai 2019, Appeon a lancé PowerBuilder 2019. Cette version supporte le développement C#. Elle fournit un nouvel IDE C#, des objets d'accès aux données .NET, une solution de migration C#, un client API Web et des thèmes d'interface utilisateur.
Le 3 avril 2020, Appeon a lancé PowerBuilder 2019 R2. Cette version inclut le tout premier convertisseur de code PowerScript vers C#, qui peut migrer automatiquement 80 à 95 % de la logique métier et des DataWindows de PowerBuilder vers C#. L'interopérabilité entre PowerScript et les langages de programmation .NET est également désormais prise en charge. De nombreuses fonctionnalités existantes ont également été améliorées.
Le 22 janvier 2021, Appeon a lancé PowerBuilder 2019 R3. Cette version fournit une nouvelle technologie révolutionnaire de déploiement d'applications appelée PowerClient, qui automatise en toute sécurité l'installation et la mise à jour des applications clientes via HTTPS. Le développement d'API Web C# a été grandement amélioré avec la programmation asynchrone et la prise en charge des bases de données Amazon Aurora et Azure Cloud. Outre de nombreuses autres nouvelles fonctionnalités, PowerBuilder 2019 R3 est une version de support à long terme (LTS) qui remplace les versions LTS précédentes

## Communauté

PowerBuilder est connu pour sa base de clients loyaux, et son développement facile.
Par conséquent, il y a une variété de groupes de communauté et de ressources pour les développeurs PowerBuilder souhaitant partager leurs techniques et s'assembler. Ceux-ci incluent :
    – Communauté PowerBuilder de SAP ;
    – Communauté PowerBuilder de Appeon ;
    – PowerBuilderTV est une série des webinars par et pour la communauté PowerBuilder, avec sessions présentés par les évangélistes, développeurs et éditeurs PowerBuilder ;
    – PBTV News diffuse des nouvelles à destination des développeurs PowerBuilder.