Featured Educational Sessions
Modern UI/UX
Learn how to leverage the UI Theme feature of PowerBuilder 2019 to modernize the application. Topics covered include: how to use the built-in themes, how to create themes of your own, and how to deploy themes with your application.
Learn how to utilize the new UI Themes introduced with PowerBuilder 2019 to give your applications a more modern look. Topics covered include: the basics of how themes work, how to customize themes and create your own, what UI control properties can and cannot be themed in the current release of the theming functionality, tips on working within these constraints, and some coding solutions you can use to further extend the built-in functionality.
Learn techniques to make your applications more attractive and better to use. Topics covered include: understanding the basics about UX quality with PowerBuilder, how to work around PowerBuilder limitations to make a better UX, and how to use the new UI Theme feature of PowerBuilder 2019.
Learn how to simply use Windows, DataWindows, and other native objects (without 3rd party DLLs) to create a modern and user-friendly UI framework for your desktop, web, and mobile PowerBuilder applications. You will see live real-word application demo and get to take home the source code of this modern UI framework. Topics covered include: using simple DataWindow expression to design interactive UI, how timer object can be useful to create animation effect, and how to apply a color theme for your UI that works with all versions of PowerBuilder.
C# Development
Learn the basics of C# language in simple steps. Topics covered include: how everything is wrapped in classes in C#, the common differences between C# and PB syntax, the pitfalls and caveats that are usually encountered while moving the first steps into C# Web API and the PowerBuilder C# IDE.
Learn the basics to develop C# Web Services using the PowerBuilder C# IDE. Topics covered include: creating a basic REST web service and securing that web service using JWT; using those web services from PowerBuilder.
Learn various modern development techniques in the PowerBuilder C# IDE. Topics covered include: how to create and do unit testing against C# Web APIs; how to create and access NuGet packages.
Learn how to manage transactions, for popular relational databases, using SqlModelMapper. Topics covered include: how to use the DataContext; implicit vs. explicit transactions; extending the functionalities of transaction management.
Learn how to use SqlExecutor to run raw SQL as well as automatically-generated SQL statements. Topics covered include: executing SQL SELECT/UPDATE/DELETE statements; executing stored procedures; executing SQL cursors.
Cloud Migration
Learn the general migration process including best practices of migrating a large existing PowerScript target to a C# Web API enabled solution. Topics covered include: how to optimize existing Powerscript code before starting the migration, how to set up a deployment pipeline for the new C# solution, how to migrate existing code to C#, how to reuse database access logic (DataStores & embedded SQL), how to take advantage of the additional opportunities provided by the C# language, how to avoid or solve some common pitfalls, and how to make sure that the new solution works as expected.
Learn a productive way to migrate your existing PowerScript applications to C# by using .NET Core framework, the .NET DataStore object, and a modern UI. Topics covered include: a methodical approach to define the Web API starting from your PowerScript code, with step-by-step instructions and a case study, real-life PowerScript-to-C# conversion techniques, UI/UX paradigms to understand what can be done to overhaul the old UI, and how to connect the Web API and the new UI (practical examples).
Learn how to prepare for automated migration to C# by partitioning non-visual or business logic and encapsulating it within PowerBuilder NVOs. Topics covered include: understanding the architecture with server-side NVOs; identifying what needs to be partitioned; reducing server calls by partitioning the appropriate business logic.
Learn how to deploy a Web or Mobile application using PowerServer 2020 in conjunction with PowerBuilder 2019 Universal. Topics covered include: how to configure database connection, how to do the data manipulation, how to use the workaround API and all the new REST-related features with code examples about how to interact with REST Web APIs, handle JSON and perform encryption, encoding and compression of data, and also the necessary extra steps that required in PowerServer.
Learn how to utilize new features of PowerServer 2019 (in conjunction with PowerBuilder 2019) to free your apps from the desktop and limitations of client/server architecture. Topics covered include: how to thin out your application by deploying business logic as C# Web APIs utilizing the new .NET DataStore of PowerBuilder 2019 and how to convert your application UI into a Web app that consumes your C# Web APIs utilizing the new REST features of PowerServer 2019. Since the majority of the work is automated by the migration engines in PowerServer and PowerBuilder, this session will focus on the manual work that is involved.
Integration & Interop
Learn how to implement two-factor authentication for PowerBuilder applications. Topics covered include: what is two-factor authentication, how Google two-factor authentication works, how to generate the QR code image on the server side, how to generate the pin code on the client side, and how to validate the pin code.
Learn how to develop modern secure apps containing PowerScript clients, Web APIs, and external components. Topics covered include: how to implement security features like impersonation, roles, encryption, etc., how to adjust your logic in order to support secure login, how you can do this with different databases, how to minimize risk of password being hacked from system memory, how to avoid problems caused by network delays in the new architecture, how to handle unstable networks, and how to get trustworthy user identity. Less relevant topics in client/server require deliberate attention.
Learn hard-won lessons from developing a RESTful API with JSON and the new HTTPClient object. Topics covered include: how to create HTTP header and body, how to use JSON generation, parsing, and validation, and how to include binary attachments with practical examples using Appeon 2017 R3.
Learn how to make DropBox REST API calls from PowerBuilder. Topics covered include: how to set up a service account in Dropbox, generate an OAuth2 access token, use Files/ListFolder functions to show a directory view of folders and files, drill into folders to see contents, download selected files using Files/Download APIs, as well as upload selected file using Files/Upload APIs. Also, the new PowerBuilder features OAuthClient, JSONGenerator, JSONParser, DW.ImportJSON will be demonstrated for integrating with Dropbox using the REST standard.
Learn how to make DropBox REST API calls from PowerBuilder. Topics covered include: how to set up a service account in Dropbox, generate an OAuth2 access token, use Files/ListFolder functions to show a directory view of folders and files, drill into folders to see contents, download selected files using Files/Download APIs, as well as upload selected file using Files/Upload APIs. Also, the new PowerBuilder features OAuthClient, JSONGenerator, JSONParser, DW.ImportJSON will be demonstrated for integrating with Dropbox using the REST standard.
Learn about the enhancements for the RESTClient in PowerBuilder 2019. Topics covered include: new functions (RetrieveOne, Submit, SentGetRequest, SendPostRequest, etc.), changes to existing functions (SetRequestHeader), new capabilities (JWT, GZip), and modified functionality (OAuth).
Developer Productivity
Learn a technique that leverages the DataWindows of different types to create complicated reports and books of stories as a set of the same stories that run against different sets of input parameters but has one long output. Topics covered include: decomposition of a requested report into a set of the predefined types, usually Tabular ones; creation of a separate DataWindow object for each of them and finally to combine all of them into one DataWindow object of Composite type, and dynamic creation of composite DataWindows with all its sub-reports in a loop through the sets of input parameters. I will discuss the problems that arise during the implementation of this approach in client/server and web PowerBuilder application and how to solve them.
Learn how to do static code analysis of PowerScript code with SonarQube. Topics covered include: how to set up an extension to analyze code written in Powerscript, how to define custom based rules to explain code, how to integrate this process into a build pipeline, the general benefits of static code analysis provided by SonarQube and shows how to take advantage of this tool while maintaining your existing code and also for preparing it for a migration to the new C# Web API target.
Learn how to work with Azure DevOps (ADO) using the native interface of PowerBuilder 2019. Topics covered include: how to set up the environment, integrate the PowerBuilder IDE, build, test, and deploy with CI/CD.
Learn the techniques of how to share ancestor between DataWindow, DataStore and DataWindowChild. Topics covered include: a review of situations where you need to share the same exact code to run on DataWindows/DataStores/DataWindowChilds, a review of how to work around problems in each case, and a review of how to construct a user object that provides the functionality of common ancestor object without most of the drawbacks of using dynamic keyword or if/then statements.
Learn how to create custom wizards for the PowerScript IDE. Topics covered include: how the PowerBuilder wizard systems works, how to create your own wizard, and how to integrate this wizard into the PowerScript IDE.
Tips & Tricks
Learn tips & tricks to improve your PowerScript code. Topics covered include: how to handle errors, improve the performance & code quality, and how to integrate with external components like Web APIs or OLE automation.
Learn how to use AscentialTest to automate your PowerBuilder app testing. Participants will learn how a suite of automated tests can be developed for PowerBuilder in a drag and drop interface that does not require programming experience. Topics covered include: how to define PowerBuilder application objects in AscentialTest for automated testing; how to create and use a selector to select a row and column from a datawindow during the execution of an automated test; how to build robust tests for a PowerBuilder application through drag and drop; how to manage the test execution process using AscentialTest.
Learn about various new PowerScript functionalities added to PowerBuilder 2019. Topics covered include: changes to the RichTextEdit Control, the newly added objects (CompressorObject and ExtractorObjects), 64-bit enhancements, and standalone compiler enhancements.
Learn about the JSON related enhancement in PowerBuilder 2019. Topics covered include: new features in the JSONParsser, JSONPackager, and DataWindow/DataObjects.