1. Jeff Kandt
  2. PowerBuilder
  3. Friday, 5 February 2021 09:32 PM UTC

PowerClient looks very exciting as a way to solve the perennial client/server problem of deploying code to clients! But I have questions about a couple of aspects that are making me think it’s not something we can use yet.

I haven't had any hand-on experience playing with PowerClient myself yet, so if I'm wrong -- great! Otherwise, I guess this boils down to a feature request post.

Roaming Profiles

In Chris Pollach’s Elevate session, we see that the App Shell is installed into the user’s \AppData\Local folder, but it appeared that the PB applications and runtime(s) were installed into \AppData\Roaming. For enterprises implementing Roaming Profiles, doesn’t this mean that all of that data is being pushed up to the profile server and then synchronized with the workstation on each login/logoff?

Our current deployed executable folder, which includes runtime dlls and exe/pbds, weighs in at almost 300 MB. Of that, more than 100MB is our application (exe + pdbs).

If each of our several hundred users are going to need to store that much data on the profile server, this is probably a non-starter for us, especially since we maintain multiple environments that correspond with code branches/releases, so some users (developers, QA, beta testers) will be running multiple versions of our app at the same time. (I presume we would need to publish those as separately named applications: AppName, AppName_QA, AppName_Beta, etc.)

When stored in the new deployment format (individual object files) can we expect the application footprint be larger or smaller on disk than current binaries?

Is there any way to configure that the deployed applications get installed into AppData\Local instead of AppData\Roaming?

Integration with automated build pipelines

I saw that PowerClient is not yet supported by the command-line PBC tool. Does that mean the ORCA interface doesn’t support it yet either? Until PowerClient deployments can be automated as part of a CI/CD pipeline (we use TFS and PowerGen), I’m having a hard time working out how this could fit into our process.

For auditability, the builds we hand off to QA, and that get certified for production, must be generated by the build server, to provide some assurance that all objects came directly from source control. As long as PowerClient deployments require a developer (or someone with a PB license) to manually build from local PBLs, that chain of custody from source control to production is broken.

Let me know if I’m missing something, but this also sounds like a show-stopper for us.

First launch experience

Chris showed that the first time the end user loads the application URL, the user is prompted to download and install the App Shell. I was disappointed that the installer didn’t immediately launch the PB app after that install completed. Chris had to go back to the browser and navigate to the URL again.

This one’s not a show-stopper by any means (in fact we would probably push the App Shell to clients separately in advance), just a suggestion: I think it would fit better with users’ expectations, and maintain the illusion of an application being “at” a URL, if the application always launched from the URL -- whether it’s the first time or not.

 

Thanks in advance for any clarification anyone can provide.


Responses (1)
  1. Likes
  2. Latest
  3. Oldest
Loading...

Find Questions by Tag

.EXE .NET 6.0 .NET Assembly .NET Core 3.1 .NET Core Framework .NET DataStore .NET Std Framework 32-bit 64-bit ADO.NET AEM AI Algorithm Amazon AWS Android Apache API APK App Store App Store (Apple) Appeon Workspace Appeon Xcelerator Plug-in Architecture Array ASE Asynchronous Methods Authentication AutoBuild AutoCompiler Automated Testing Automation AutoScript Azure Barcode Base64 Batch BigData BLOB Branch & Merge Browser Bug Build Button C# C# Class Importer C# Editor C# Model generator Calendar Camera Certificate Chrome Citrix Class Client Client/Server Cloud Cluster Collection COM Command Line Compiler Compression Computed Field Configuration Controls Cookies Cordova Crash Cross-Platform Crosstab CSharpAssembly CSharpObject CSS CSV Cursor Data Database Database Driver Database Painter Database Profile Database Provider DataObject DataSource DataStore DataStore (C#) DataStore (PS) DataType DataWindow DATE DATETIME DB2 Debug Debugger Debugging Deployment Design DLL DO-WHILE Dockable Docker Documentation DOUBLE Download DragDrop Edge Edit Style Editor Elevate Conference Email Embedded SQL Emulator Encoding Encryption Enhancement Request Entity Entity Framework ERP Error Event Event Handler Event Handling Excel Exception Export Expression External Functions F# Field File File Access Filter Firefox Firewall Font FOR-NEXT Foreground Format Function Garbage Collection GeoLocation Git Graph HANA Hash Header HTML/5 HTTP/S HTTPClient Icon IDE Identity IIS IMAPI Import InfoMaker Inheritance Installation Integer IntelliSense Interface Internet Internet Explorer iOS IPA iPad iPhone IWA J# Java JavaScript JBoss JDBC JOIN JSON JSONGenerator JSONParser Kestrel Label Lambda Large File LDAP Library License LINQ Linux OS Load Balancing Localization Localized PBVM Log In Log Out Logging LONG LONGLONG macOS MAPI Maps MDI Memory Memory Leak Menu Merge MessageBox Messagging Method Migration MIME TYPE Mobile Model ModelStore ModelStore (C#) MSOLEDBSQL Multi Threading MVC MySQL n-Tier Namespace NativePDF NVO OAuth ODATA ODBC Office Offline OLE OLEDB Online Open Source OpenAPI OpenSSL Oracle OrcaScript Other Outlook Output Package Parameter Patch PayPal PB Classic PB Native PB.NET PBC PBD PBDOM PBG PBJVM PBL PBNI PBORCA PBVM PBX PDF Performance Permission PFC Picture Pipeline Play Store (Google) Plugin Popup Port POST PostgreSQL PowerBuilder PowerBuilder (Appeon) PowerBuilder (SAP) PowerBuilder Compiler PowerBuilder Runtime PowerClient PowerScript (PS) PowerScript IDE PowerScript Migrator PowerServer PowerServer Mobile PowerServer Toolkit PowerServer Web PowerServerLabel Print Properties Proxy Publish PULL PUSH Query Regression Release Renew Resize Response REST Retrieve RibbonBar RibbonBar Builder Rich Text Roadmap RPC Runtime Packager SaaS Scaffolding Script SDI SDK Security Server Service Session Single Sign-on Size SMTP SMTPClient SnapDevelop SOAP Sort Source Code Speech Recognition SQL SQL Anywhere SQL Server SqlBuilder SqlExecutor SQLite SqlModelMapper Storage Stored Procedure Subscription SVN Swagger Syntax TabbedBar TabbedView Tablet TabPage Target TE Control Testing Text TFS Theme TIME Timer TLS/SSL Tomcat TortoiseGit TortoiseSVN Transaction Transparency Trial Trigger TRY-CATCH TX Control Type UI ULONG UltraLite Uninstall Unit Test Unit Testing UNIX OS Update Upgrade Upload URL User Center User Object UWP Validation VARCHAR Variable Versioning Visual Studio Visual Studio Code VM Voice Warning WCF Web API Web Extensions Web Service WebBrowser WebForms WebLogic WebSphere WildFly WinAPI Window Windows OS WinForms Wizard Workgroup Workspace WPF XCODE XHTML XML Zoom

Helpful?

If a reply or comment is helpful for you, please don’t hesitate to click the Helpful button. This action is further confirmation of their invaluable contribution to the Appeon Community.