Release Bulletin for RapidSharp 2019 R2
Last Updated: July 2020
Introduction
This document provides important information about the 2019 R2 release of RapidSharp, which includes SnapDevelop and its two plugins (PowerScript Migrator and .NET DataStore with DataWindow Converter).
System Requirements
Make sure your system meets all requirements before you install RapidSharp 2019 R2.
Windows 10, Windows 8.1, or Windows 7 SP1
Universal C Runtime
The setup program will check if Universal C Runtime is installed; if it is not installed, the setup program will provide the package list, and you will need to manually download and install the package. Or you can follow the instructions in Installation Guide.
Microsoft .NET Framework 4.6.1 SDK (can be installed during the RapidSharp installation progress)
Microsoft .NET Core SDK 2.1 and 2.2 (can be installed during the RapidSharp installation progress)
TypeScript SDK 3.1 (can be installed during the RapidSharp installation progress)
Database Server Requirements
SnapDevelop IDE, .NET DataStore and SnapObjects support the following database types and versions:
DB Type | DB Version |
---|---|
MySQL | 5.6, 5.7, or 8.0 |
PostgreSQL | 9.6, 10.1, 11.3, or 12 |
Oracle | 12c, 18c, or 19c |
SQL Server | 2016, 2017, or 2019 |
SQL Anywhere (ODBC) | 16 (16.0.0.2043 or later) or 17 |
SQLite | 3 |
PowerBuilder Migration Capability
PowerScript Migrator supports automatically migrating PowerBuilder business logic directly from most versions of PowerBuilder:
- Sybase PowerBuilder 8 - 12.5
- SAP PowerBuilder 12.6
- Appeon PowerBuilder 2017 - 2019 R2
Known Issues
SnapDevelop IDE
Toolbar Items/Menu Items/Shortcut Keys
- The filter function in the References window does not work.
- If you remove some buttons in the toolbar, the buttons still display after you restart SnapDevelop.
- A Save Window Layout menu item is available, however, there is no function for restoring a saved layout.
- If you press Ctrl+Alt+Break to temporarily stops execution in a debugging session, a dotted box appears around the toolbar.
Start Page
- If you pin (or unpin) a project in the Recent Projects list, the project is not pinned (or unpinned) until after you restart the Start Page.
Editor
- It is unsupported to drag external files (html, cs) to the SnapDevelop editor area to edit.
- It is unsupported to zoom in/out font sizes by clicking ctrl+scroll.
- When you click the Replace button, the editor and cursor stay where they are, and do not scroll to the code that is making the replacement.
- When you click the Replace button while the cursor is just before an occurrence to be replaced, the next occurrence is replaced instead of the current one.
- If you select the Export in DataWindow Converter, or the Generate button in Scaffolding, all open .cs files will get closed.
- If you make changes to a project in Visual Studio while the project is also opened in SnapDevelop, after you save the changes in Visual Studio, some temporary files may display for the project in SnapDevelop.
Projects/Solutions
- Projects that use multiple versions of .NET Framework are unsupported by SnapDevelop.
- When creating a new project, it is possible that a project name contains only spaces; it is unsupported to specify relative path when creating a project.
- After you perform a search in Solution Explorer, if you clear the search criteria, all the folders in Solution Explorer display as collapsed.
- If there are too many files in Solution Explorer (that cannot be displayed fully on the screen), when you attempt to select all the files, only the files that are last shown on the screen are selected.
- If there are too many files in Solution Explorer (that cannot be displayed fully on the screen), when you click the Sync with Active Document button but the active document is not displayed, you have to scroll the files in Solution Explorer to find the active document (although the document is highlighted).
Scaffolding
- When you first start the scaffolding function, you may need to wait for a few more seconds for the scaffolding window to be completely loaded, even after the progress bar is 100% done.
- With the scaffolding window open, if you delete the service/controller folder that is just created through scaffolding, and then click the Generate button to generate the service/controller again, an error will occur.
- If you scaffold from a model that does not support Update with a scaffolding template that will create the Update and Create APIs, an error will occur when you execute the Update or Create API in the generated service.
- If you specify a folder name that cannot be used as a variable name, the scaffolding function cannot detect the unsupported name, but the generated controller will have error in it.
- Although you have added multiple data contexts that connect to different databases in a project, the Scaffolding window only shows one data context option for generating services.
Git Source Control
- If you make changes in the editor while the Changes page is on display in Team Explorer, the Commit buttons in the Changes page remain disabled, unless you exit the Changes page and open it again.
SVN Source Control
- If you add a project to SVN source control, only the following special characters are allowed in the target repository path: +, @, $, &, *, _, (), =, -. All other special characters (including space) are unsupported.
- After a file or folder in a project is renamed and committed to the SVN server, when another user updates the file or folder, the file or folder may become missing from his project folder. To avoid such issues, make sure you always commit or update the whole project folder instead of a single file or folder.
Unit Testing
- If you use the [InlineData] attribute to set the different test scenarios, after one test scenario fails, you cannot proceed to test the next test scenario.
- When you perform unit testing in debug mode, it is not possible to dynamically change an enum-type parameter.
- Unit testing cannot restore the last test results if you reopen a solution or reopen the IDE.
Debugging
- It is unsupported to get the values of static class attributes in debug mode.
- It is unsupported to view the data information in the DataTable in debug mode.
- Two issues with asynchronous debugging: (1) Clicking F11 does not take effect; (2) It happens rarely that the debugging auto exits in the middle of the process.
- When the IDE is in dark theme, the code font color sometimes changes in synchronous debugging mode.
- It happens sometimes that the debugging still continues even if the program has stopped.
- When you perform formatting or copy/paste operation on a code line with breakpoint, the coloring of the breakpoint may go wrong.
- If the data type of a return value is model, you may need to refresh a few times to view the return value.
SQL Query
- The following features do not work with SQL queries that use ODBC connections:
- Cannot mark the primary key columns in the table schema;
- Can only show the tables and views, but not functions, stored procedures and triggers;
- Does not support the auto-creation of SELECT Top 100 and SELECT By Key statements;
- Cannot show execution plan of a SQL query.
- It is unsupported to connect to an encrypted SQLite database.
- Even if a DB connection is closed, users can still query a database even if the DB connection is manually closed.
- If you have opened several SQL Query tabs, when you select to close solution, you will be prompted multiple times whether to save the SQL queries.
- In SQL Query, if you execute copy/cut but nothing is selected, all the content will be copied/cut.
- If a database table contains special characters (for example, "]"), the generated SQL query statement may fail to execute successfully.
- If you add a primary key to a table column in SQL Query, after you refresh the table, the primary key information does not display properly.
- SQL queries display all NULL results as empty.
Build
- Even after you have installed the .NET Core 2.2.402 SDK, the target framework does not show ".NET Core 2.2" as a build option.
- The Output window does not show the statistics of referenced projects when you perform a Build/Clean/Rebuild.
Publish Projects to Docker
- It is not well supported to publish projects to Docker Window container yet.
NuGet Package Manager
- When you remove a NuGet package from a solution, the package file is not removed from the \Microsoft SDKs\ folder.
- If SnapDevelop fails to connect to NuGet.org, when you create a new project, the NuGet packages in the projects are all marked by a yellow exclamation mark, even after you execute the Restore NuGet Packages on the solution. The yellow exclamation mark will disappear after you restart the IDE.
Open PB Workspace
- If you refresh the currently-open PB workspace while a .srd file is open, the .srd file will fail to refresh.
DataWindow Converter & .NET DataStore
DataWindow Converter
- If the SQL query defined in the DataWindow Retrieve is a raw SQL Select and table and column names are enclosed in quotation marks, the column name of DwColumn attribute of the converted model will contain redundant quotation marks, which will cause the DataStore update to generate incorrect SQL syntax.
- If a DataWindow column is of Char type and has multiple lines of data as its initial value, the generated model may fail to work.
- If a DataWindow column is of Char type and contains double quotes ("") in its initial value, the initial value will be translated incorrectly in the generated model.
- With Oracle connections, if a DataWindow column is of Char type and the decimal precision of the value in the column is greater than that of C# decimals, the generated model will fail to retrieve.
- With Oracle connections, if a DataWindow column name is one of the Oracle key words, the generated model will fail to retrieve.
- With Oracle connections, it is supported to connect to the database using TCPS, but it is unsupported to automatically add the Wallet settings in the appsettings.json file.
.NET DataStore (DWNet.Data and DWNet.Data.AspNetCore)
- It is unsupported to retrieve to a model converted from a Crosstab DataWindow, so it is recommended not to convert Cross DataWindows.
- Some DataWindow expression features cannot work well yet: Like, Trim, CumulativePercent.
- The String[] type parameter is unsupported in models and shall be replaced with list.
- The RetrievebyKey only searches the master table. If the detail table contains a field that has the same name as a field in the master table, the field in the detail table will be erroneously set to the same value as the field in the master table.
- Using ExportRowAsString to export a date type value, the millisecond in the value will be ignored.
- Please note the following behavioral difference from PowerBuilder: (1) It is not possible to change a "NewModified" row status to "NotModified"; (2) if you change a row status from "NotModified" to "New", the row status becomes "NewModified".
- When a generic DataStore executes the Sort or SortBy function, it does not keep the sorting criteria.
PowerScript Migrator & PowerScript Migrator Framework
PowerScript Migrator
- When PowerScript is translated to C#, it might be translated to C# language newer than the default version C# 7.0. For example, PowerScript "readonly" parameters are translated to C# "in" parameters. The "in" parameter is a new feature in C# 7.2. Therefore, we recommend you change the default option for language version from "C# latest major version (default)" to "C# latest minor version (latest)" in Project -> Property -> Build -> Advanced.
- When a dynamic SQL statement is translated to SqlExecutor.ExecuteNonQuery, the first SQL parameter may be translated incorrectly.
- When a DataWindow expression that contains index is translated, the index is not properly deducted by one.
- If a code block contains multiple different transactions, the transactions may be translated incorrectly.
- The "elseif" is incorrectly translated to “else" + comment + newline + "if".
- When the SetItem function uses the row number returned by "row=insertrow(0)", the row number is incorrectly deducted by 1.
- If a GetItemStatus or SetItemStatus function is used to get a row status (the second parameter of the function is 0), the function is incorrectly translated. The workaround is to change the function to GetRowStatus or SetRowStatus before the translation.
- The row identifier in a For loop is incorrectly translated to ".value" (for example, "i.value").
- Sometimes the Migrator would incorrectly add a pair of curly brackets ("{}") in the Else statement.
- If you want to translate a visual object (for example, window) that contains a DataWindow, be sure to use the Translate Entire Document function, otherwise the functions in the DataWindow cannot be properly translated.
PowerScript Migrator Framework (PowerScript.Bridge)
- The version of the PowerScript.Bridge NuGet package provided in the 2019 R2 GA installer is 1.0.0. We recommend you manually upgrade it to 1.0.1 (or later) for better handling of the translated DataStore functions.
Bug Fixes
PowerScript Migrator
The following bugs are fixed in PowerScript Migrator:
- (Bug 4379) With "Highlight Matching Method" (previously called "Sync Method Feature") enabled in PowerScript Migrator, if you select some translated code and press Ctrl + C, the method name is copied instead of the translated code.
- (Bug 4418) PowerScript Migrator ignores some code when translating the entire document. And when translating that specific code, the following error occurs: “Before performing this operation, you must place the cursor in the declaration of a function, event, variable, struct, or object”.
- (Internal bug) An unnecessary parameter is generated when a DataWindow data expression is translated to the Datastore.SetItem method.
PowerScript Migrator Framework (PowerScript.Bridge)
The following bugs are fixed in PowerScript.Bridge:
- (Internal bug) The Update method (DataStore extension method) returns a different value from that in PowerBuilder when nothing is updated.
DataWindow Converter
The following bugs are fixed in DataWindow Converter:
- (Bug 4478) DataWindow Converter requires a database connection for external DataWindows.
.NET DataStore
The following bugs are fixed in .NET DataStore:
- (Internal bug) When DataStore data is exported using JSON template, data export fails if DataStore contains nested reports.
SnapObjects
The following bugs are fixed in SnapObjects:
- (Bug 4366) Data types incompatible in the SqlExecutor.Scalar method (e.g., unable to cast object of type 'System.Int16' to type 'System.Nullable'1[System.Int32]').
- (Internal bug) When SQL query is executed, exception occurs if the names of two or more columns are the same in the SQL statement.
- (Internal bug) Failure to convert the OracleDecimal data type (generated when Oracle executes such aggregate functions as Avg and Sum) to the Decimal data type.
Third-Party Components and Deployment
SnapDevelop applications have some dependencies on third-party components that are installed with SnapDevelop.
List of Free Download Components (Including Open Source Components)
For the complete list of the free download components (including open-source components), view the Free Download Terms document on the Appeon website.