Key considerations before deploying your app to PowerServer

This section provides an overview of the key considerations for users who are new to PowerServer, especially those migrating from traditional PowerBuilder client/server applications. The following topics cover common concerns and important factors to be aware of in order to successfully deploy PowerBuilder applications with PowerServer.

  1. Undetected Unsupported Features

    In certain scenarios, PowerBuilder code may not function correctly in PowerServer, yet the compiler does not report any errors. This can lead to unexpected behavior during runtime. It is therefore essential to thoroughly review the Unsupported Features Guide and conduct comprehensive testing before deployment. The documentation provides valuable insights into potential compatibility issues between PB code and PowerServer's cloud-native architecture.

    Reference: Unsupported Features & Workarounds

  2. Database Connectivity

    Database connectivity in PowerServer differs significantly from traditional client/server models. In PowerServer, the architecture is cloud-native, and database interactions are handled by .NET rather than PowerScript. Although we have made significant efforts to replicate PowerBuilder concepts (e.g., transaction objects, LogID/LogPass), careful consideration is required in some cases.

    A critical aspect to evaluate is whether your application requires LongConnection to be enabled. By default, LongConnection is disabled. It is important to assess if enabling this feature is necessary for your application's performance.

    Reference: Long Connection

  3. Runtime Performance

    The runtime performance in PowerServer will not be as fast as in a traditional PB client/server environment due to inherent differences in network architecture. This is a limitation of the cloud-native model rather than an aspect that can be significantly improved in future versions of PowerServer. However, with appropriate optimization, most users can achieve satisfactory performance.

    To improve performance, implementing PowerServer Labels is a common approach. Labels help group server calls to optimize execution efficiency. For most applications, this will be sufficient. However, in some rare cases, additional performance tuning may be required.

    Reference: Grouping Server Calls

    Additional techniques for performance optimization: Performance Tuning

    The only accurate way to evaluate the performance of your application is to deploy it with PowerServer and conduct real-world testing over an internet connection. Even if initial performance is acceptable, it is strongly recommended to implement PowerServer Labels for greater code efficiency.

  4. Scalability

    Scalability is closely related to runtime performance. PowerServer applications often exhibit performance issues in a server-based environment that may not be apparent during single-user testing. In multi-user environments, problems such as slow performance, blocked actions, or server crashes may arise.

    The core issue stems from the way database-related code is handled. In a client/server setup, database code executes on each user's desktop. In contrast, PowerServer processes all database interactions on a central server, which may cause scalability issues if not optimized.

    Common examples of database-related code include: DataWindow.retrieve, DataWindow.update, Embedded SQL.

    To properly assess scalability, a beta rollout with real users is essential. Testing with a limited number of developers will not simulate realistic usage. Although load generation tools can simulate high user volumes, they may not fully replicate the diverse user scenarios your customers will encounter.

  5. Web API Security

    PowerServer converts all DataWindows, DataStores, and DDDWs in your application into .NET DataStore Web APIs. These Web APIs provide basic CRUD functionality required by the client application, but they do not support extending the functionality with custom business logic.

    Since PowerServer uses standard Web APIs, implementing user authentication in the Web API layer is critical. This requirement applies to both the PowerServer-generated Web APIs and any custom Web APIs you create. Without this authentication step, malicious users could potentially guess the Web API URL and gain unauthorized access to your customers' data, posing significant security risks.

    Before deploying your application to production, ensure that authentication is implemented correctly to protect the integrity of your customers' data.

    Reference: Authenticating Your Apps

By understanding and addressing these key areas, you will be better equipped to deploy your PowerBuilder applications successfully using PowerServer. We strongly recommend reviewing the provided documentation links and conducting thorough testing to ensure that your applications perform optimally and securely in a PowerServer environment.