Tech Articles


Working with Transactions in .NET DataStore


This document will describe how to work with transactions for CRUD operations (create, read, update and delete) in .NET DataStore.

For the full content of the document, see https://www.appeon.com/support/documents/appeon_online_help/powerbuilder/Working_with_Transactions_in_.NET_DataStore_and_ModelStore/

CRUD Operations with .NET DataStore


This tutorial demonstrates the basics of creating, in SnapDevelop, a Web API with ASP.NET Core that will use .NET DataStore as its data manipulation component.

In this tutorial, you will learn to:

  • Create a Web API Project
  • Test the API
  • Add a Database Context
  • Register the Database Context
  • Add a .NET DataStore Model
  • Add a Service
  • Perform CRUD Operations Using the Web API
  • Call the Web API from PowerBuilder

To view the full content of the tutorial, see https://www.appeon.com/support/documents/appeon_online_help/powerbuilder/CRUD_Operations_with_.NET_DataStore/index.html

JSON Enhancements in PowerBuilder 2019


 

Support for the JSON format was added in the PowerBuilder 2017 R2 release and then enhanced in 2017 R3.  PowerBuilder 2019 contains even more enhancements in this area, particularly with regard to:

  1. Enhanced JSONParser
  2. Enhanced JSONPackage
  3. DataWindows Row Level Import/Export
  4. New ModelStore JSON Format

 

Read more

Two Factor Authentication using PowerBuilder


Two factor authentication is a way of increasing the security of an application by requiring the user to provide more than a simple password (one factor authentication).  Two factor authentication utilizes two of the following factors to identify the user:

1.  Knowledge - something you know - for example, your password

2.  Possession - something you have - for example, your cell phone or access to your email account

3.  Inherent - something you are - for example, fingerprints or eye iris

The third factor is out of scope for this particular article We're going to look at adding the second form (possession) to a PowerBuilder application. Specifically, we're What going to use Google Authenticator, an application for mobile devices (and the desktop) that generates time based one time temporary passwords (TOTP) for use with 2FA.

The sample code for this article is available on CodeXchange.

 

Read more

Curso en Español de PowerBuilder


 

Hola Amigos, Comparto mi curso básico de PowerBuilder en Español. Los temas son los siguientes:

  • Introducción a PowerBuilder
  • Ambiente de desarrollo de PowerBuilder
  • Crear un objeto Aplicación
  • Creación de ventanas
  • Power Scripts
  • Bases de datos relacionales
  • Painter de Bases de datos
  • Objeto DataWindow
  • Conexión a Bases de datos
  • Programación orientada a objetos en PowerBuilder
  • Construyendo Menus
  • Introducción a aplicaciones MDI
  • Usando DataWindow Controls y MDI Sheets
  • Mostrando datos de la base de datos y declarando User Events
  • Conexión de DataWindows a Bases de datos
  • Declaración y uso de funciones en ventanas
  • Declaración y uso de eventos en ventanas
  • Creando instancias de ventanas
  • Declarando y usando Funciones
  • Modificando, Insertando, y borrando filas
  • Salvando cambios en la base de datos
  • Creación de Ejecutables
Read more

Inno Setup: Sample .ISS File


PowerBuilder v12.1, build 7055
Windows 7 32 bit platform
Windows 7 64 bit platform
Windows 10, 64 bit platform


A Sample Inno Setup ".ISS" File
Olan Knight
28-Mar-2019


Once upon a time, long, long ago, we used a product called InstallShield to create the Windows installer for our various products. Over time, the cost for InstallShield became prohibitive, and we eventually settled on using Inno Setup as the replacement tool to create out installers.

You can get the free tool here:    http://www.jrsoftware.org/isinfo.php
The excellent HELP file is here:     http://www.jrsoftware.org/ishelp/   

It's a simple and intuitive tool, but it has some quirks and there is a learning curve. 
Inno Setup uses an ".iss" file as its source code. It compiles that ISS file into the SETUP.EXE for your application, with the file name being up to you.

Read more

Working with Branches in Git for PowerBuilder


One of the reasons that people choose to use Git is how easy it is to do branching. Unfortunately, PowerBuilder hasn't implemented it yet. But that doesn't stop you from using this feature if you don't mind taking a few extra steps. This article shows you how you can work on different branches with the help of TortoiseGit. 

Read more

Find Articles by Tag

Linux OS HTTPClient Web API Application Icon 32-bit Configuration Trial Excel IDE SVN Platform PBVM Testing PowerScript (PS) RESTClient WebBrowser Menu 64-bit Filter RibbonBar OrcaScript TFS Charts InfoMaker Branch & Merge Script Database Painter PostgreSQL ODBC driver PFC Import JSON Resize CI/CD TortoiseGit External Functions Variable Jenkins BLOB Model Stored Procedure Export PostgreSQL Syntax RibbonBar Builder TLS/SSL SOAP JSONParser SqlExecutor OLE WinAPI Debugger RichTextEdit Control GhostScript Window CoderObject Outlook Debug Expression C# Elevate Conference Messagging PowerServer Mobile DragDrop Database Profile DLL Windows 10 Icons COM Interface Debugging Import .NET Assembly Authorization Web Service Proxy Oracle Source Control Transaction Deployment DevOps Export JSON Database Object SDK Service PowerServer Web PBNI PDF PowerBuilder Compiler Database Table SnapObjects Installation Open Source Windows OS SQL Server File Graph Mobile Event Migration Performance iOS PDFlib Git .NET DataStore Automated Testing UI Android NativePDF Sort Text API .NET Std Framework Event Handler Data Source Code DataWindow JSON JSON REST PowerBuilder (Appeon) Class Database Table Schema Database Visual Studio Encryption PBDOM MessageBox Event Handling Database Table Data XML TreeView ODBC DataType Encoding PowerBuilder JSONGenerator UI Themes DataWindow License OAuth SqlModelMapper Validation ActiveX Bug Azure Array Repository CrypterObject SQL Design Error Database Connection Authentication SnapDevelop UI Modernization OAuth 2.0