[1] Added "License Registration..." item to Help menu
[2] Added "Studio Licensing Options" item to the Help menu
[1] Changed the splash screen to show 2019.
[1] Updated revisions and copyright notices (using 2019)
[2] Updated references to product identity (using 2019)
[1] Updated help file references to new structure
[2] Included "Beta 1" in about information
[1] Modified "Configure Create New". When creating a "new project" entry there are now three choices
of project type:
1 - Window Project (0)
2 - Basic WebApp Project (40)
3 - Framework WebApp Project (50)
[2] Modified Templates.xml so that the entry for the "Basic WebApp" template now carries a component type
of 40.
[3] If the project type is Basic WebApp Project then:
- The JavaScript Engine is not copied into the workspace
- The WebApp Database Tables are not created
- The psEncryptPassword property is not generated
[1] Changed web.config generation to perform "pretty formatting" of the xml
[2] Changed the "pretty formatting" xsl to not remove the output xml header <? element.
[3] Modified the compiler output to list each WebHttp Handler component that is added during web.config generation.
[4] Optimized error reporting for the DDO Explorer. When initializing DDO's the Studio will now only report a "disable login" error once per table per workspace session.
[1] Improved error messages when building web.config during compile.
[2] Added projectWebHttpHandler.ico to Studio.cfg (links icon as resource)
[3] Replaced generic projectWebHttpHandler.ico with a unique icon.
Modified ProjectWebBrowserObject.ico icon
Use the old Web Browser Object icon as the new projectWebComponent.ico
[4] Added support for Web Component grouping in Workspace Explorer
• Fixed a bug in the WebApp Designer causing large views to cause JavaScript errors (new in 19.1).
• Fixed the Invalid CDS Node error after creating a new webapp.
• Enabled the 'Create new..' item of the context menu for HTTP Handlers
• Added new 'Web HTTP Handler' template under the Web Object tab.
• Added support for the Web HTTP Handler to the Workspace Explorer.
o Web HTTP Handler components can now be added to the project and they will be added to WebApp.src like web service and web business objects.
o A new group 'Web HTTP Handlers' is shown in the Workspace Explorer.
• Fixed the 'psPath' changes are not always reflected in web.config issue when compiling to soon after making the change. The CDS now always reparses files after they are saved.
• Improved link in comments detection by simplifying the regular expression in dataflex.lng.
• Improved the generation of the web.config file which would generate a duplicate system.webserver element at root level.
[1] Modified the compiler to generate web.config file for the workspace when compiling a web application. If the web.config file already exists then it is updated with the latest HttpModule attributes.
This build of the Studio contains the compiler changes to create/update the workspace’s web.config. Harm can you verify that it is generating the web.config file as required?
I have the following things to note about the build I have checked in…
- If the generator finds an existing <dataflexHttpModule> element for a given cWebHttpModule object that has the “manual=true” attribute set then the generator does not touch the element, i.e. not deleted, not updated. I assume that this was the intention.
- If there are 2 cWebHttpModule objects with the same psPath setting then they are both added to the same <location> element as per the following example…
<location path="MyRestService">
<system.webServer>
<dataflexHttpModule application="WebOrder" enabled="true" object="oHisRestService" verbs="*" errortype="0"/>
<dataflexHttpModule application="WebOrder" enabled="true" object="oMyRestService" verbs="*" errortype="3"/>
</system.webServer>
</location>
- The “PrettyFormatXML” function that the Studio uses in various places to format an XML file as human readable has a problem with this particular file. It seems to remove the <?xml version="1.0" encoding="UTF-8"?> element at the beginning of the file. I am quite surprised by this and will make a few more tests to confirm this problem. In the mean time the generated XML does not have line breaks and indenting which makes it hard to read in a text editor.
[1] Fixed 24x24 bit "Web Browser Object" icon in the Workspace Explorer.
[2] Modified the "Update JavaScript Engine" process to use the new fast copy Win32 API function.
[3] Fixed BT 7464 - Studio Modeler Icons for Center Vertically and Horizontally are reversed
[4] Implemented BT 7465 - Remove the excessive decimal precision on memory use in Help > About
The Studio now allows manifest files to be used with web applications.
* If build is true it will make sure a manifest is created
* If embed is true, it will embed (but not create it). If no manifest, you should get an error.
* With WebApp, the default is false for build and embedded manifest but both can be changed
[1] The Resister WebApp process, that registers or rebuilds the WebApp configuration, has now been moved to the external InitializeWebApp.exe wizard so that it can be run with elevated rights without restarting the Studio.
[2] The Disable/Enable WebApp operation in the Project Properties panel is now executed in the external InitializeWebApp.exe wizard so that it can be run with elevated rights without restarting the Studio.
[3] fixed Bug 7459: Disable WebApp checkbox overwrites the WebApp's Min Pool & Max Pool configuration
[4] Modified the width of the status/sentinel panel in the InitializeWebApp wizard to match the Studio status panel
[5] During Initialize New WebApp the files copied from WebAppMaster now ‘overwrite’ the local workspace files if there is any clash, i.e. the new files are copied in, overwriting any old files that may already exist in the webapp. The “existing WebApp.src will be overwritten” dialog has been modified to reflect this.
[6] There is an adjustment to handle GUI Dialog GUI adjustments. Dialog to GUI can result in multiple dialog values translating to the same Dialog unit. When this happens a GUI to Dialog back to GUI can result in a different GUI value. A value is incremented by the user and then decremented by the translation resulting in a stuck location. This has been fixed.
[1] Moved the entire New WebApp Initialization process into an external Wizard so that it can be run with elevated rights even if the Studio was not launched As Administrator. (Requires that InitializeWebApp.exe is installed in bin folder)
[2] Fixed the "create manifest" process during compile so that the .manifest file is always located in the same folder (or subfolder) as the .src file (unless it needs to be stored in the programs folder).
The “Register WebApp” process (Tools Menu) still needs to be moved to an external Wizard.
Modified CrackURL to handle ipv6. Also changed parameters from variants to ByRef Integer or String, as appropriate.
Replaced the IdeDialogs Delphi component by the new DfFolderDialog, which is based on the modern Windows File Dialog, in a way that only folders can be selected.
[1] Added a new hot key combination to advance the editor to the next compiler error/warning or find in files result.
Ctrl+Alt+M - next compiler error/warning (or find in files result)
Ctrl+Alt+B - previous compiler error/warning (or find in files result)
The Studio determines whether a next/prev Compiler Error or whether a next/prev find in files result is loaded based on what the last action was.
If you just finished compiling it will be a next/prev compiler error.
If you just finished a find in files search then it will be that.
If you click in the compiler output panel then that will take over again, whereas if you click in the find in files results panel then that takes over.
[2] Fixes Studio Client Web Service Import bug. The importer raised unhandled errors when a schema extended an empty base schema and that extending schema was an array. When the schema is turned into a struct member, it made an assumption that the first element of the schema contained the array information. It didn't. That assumption has been removed.
[3] Added codesense support for CompilerWarnings, CompilerLevelWarning and #Warning commands.
Also added keywords to DataFlex.lng for syntax highlighting.
CompilerLevelWarning IfLine On
CompilerLevelWarning IfExp On
CompilerLevelWarning All On
CompilerLevelWarning Item On
CompilerLevelWarning IfLine Off
CompilerLevelWarning IfExp Off
CompilerLevelWarning All Off
CompilerLevelWarning Item Off
CompilerWarnings Off
CompilerWarnings On
CompilerWarnings Restart
CompilerWarnings Suspend
#Warning
[4] Migrate manifest for existing projects only - starting point AppSrc; run though all folders specified in AppSrcPath
* All the Studio Create New Wizards support DPI Scaled Images in the treeview controls
* Fixed Bug 7425: Web Lookup Wizard adds cWebModalDialog package without .pkg extension
* Fixed Bug 7430: Web Modal Dialog template adds cWebModalDialog package without .pkg extension
* Fixed Bug 7433: WinPrint Report Wizard and WinPrint Top Down Report Wizard generate code that triggers compiler warnings
* Changed visual designer to support combo's pbApplyComboFormHeight
* Form height default now respected with Drag and drop with combos
* pbApplyComboFormHeight has category meta set to Appearance
* Added Studio support for LegacyDialogRatio in the Studio. Added to designer context menu - click in white space. The also respects the initial setting of pbLegacyDialogRatio in cApplication. Changing it in the designer does not change the cApplication setting.
* Removed Studio support for using legacy fonts.
Height sizing - If you create a DFO with a size (e.g., Set Size to 12 100), it will get used by the drag n drop as expected. When you do a DDO-modeler drag and drop it does not use the DFO settings. The Studio has default constants that it uses. Heights are 13 and vertical spacing between objects is 2. However the DDO modeler does use the rest of the DFO such as label alignment, etc. This was inconsistent.
Now the Height of a Set Size in the DFO is used. This lets you set a height preference in your DFO.
The Wizards also always used 13 as their default and they don't use the DFO. The workspace preference for height and spacing is passed to the wizards.
[1] Modified the Configure Workspace dialog to support configuring the default form height and default spacing between forms in the visual designer when dragging & dropping new forms. These defaults are also passed to the Non-WebApp Wizards.
[2] Modified drag & drop from the DDO Explorer & Class Palette to respect the new form height and form spacing defaults configuration (default height is also applied to spinform). This works when dragging into the Designer or into the Editor.
[3] Modified the New Workspace Wizard to generate a default form height of 12 for each new workspace. i.e. this is our new default, previously it was 13 (too high).
[1] Added support for DPI scaled icons in all of the Studio treeviews and other remaining visual objects using icon images.
[2] Fixed a bug in the "Commit Unsaved Changes" dialog and "File Navigator" panel where the incorrect icon would be displayed in certain cases, or the missing icon symbol.
[3] Fixed error reporting in Output Panel when the "Create New" dialog is unable to load 1 or more dynamically loaded icons. The error messages were designed to be shown in a message box, but this was changed to show the errors in the Output Panel without reformatting how the error is displayed. Now the error is displayed in a format suitable to the Output Panel.
[4] Fixed an error (introduced in an earlier build) where opening a Tool Panel context menu would show an error if the Workspace Explorer panel had never been paged.
[5] Properties Panel Image Selector dialog has been changed to only display icon files in its list, i.e. no bitmaps. Technically this is because icons and bitmaps cannot be mixed in a DPI scaled image list unless the bitmap size matches the scaled size (unlikely). Probably this is fine as we should not be encouraging the use of bitmap files in commandbar image lists anyway.
[6] The WebApp Designer now uses the JSON parser to assemble the JSON that is sent to the designer. It does not use the string builder class anymore and code to escape the JSON has been removed. This causes a slight performance improvement.
* Marked List, Grid, PrintDialog and HelpSystem as obsolete
* Removed PrintDialog from class palette, which means the following are removed: Grid, List, dbgrid, dbList, cMapiHandler, PrintDialog
* All example workspaces have their class palettes updated.
[1] fixed a bug in Output Panel where the panel's data was not being fully cleared after the user performs a clear all (this bug may not have caused any negative symptoms previously).
[2] Added new toolbar to the Output Panel. Supports finding the Next or Previous File Reference in the treeview. The file reference is loaded in the Editor ala the Find Results Panel. After compiling these buttons can be used to load the next or previous compiler warning or compiler error with a file reference.
Connect wizard changes that make reconnect more robust. This should fix:
1. Problems where an invalid or numeric Field_type is found in the int file
2. Adds recnum_table back to system files.
3. Overlaps will now include the missing field information (index, relationships). This is a bug that could impact any refresh from any driver).
4. Fixed a number of index issues
* The index_native thing caused all following segment information to be ignored. This created those gaps in the indexes.
* It should do a better job of matching index names with index segments, when overlaps are involved. This should work when the index is defined on the underlying fields of the index (i.e., the overlap cannot be the defining index segment, the columns within the overlap should have a segment for each column). The index changes are complex because the index segments in the INT file and the segments obtained by the API have different numbering and numbers of fields. The API is doing a direct open so it is getting raw data while the INT file takes into logical fields - hidden fields (recnum) and overlaps (not real back end fields). This matching with overlaps is a general problem however our drivers rarely need to do this matching because we already provide the index name.
5. Fixed issue where uppercase indexes definitions and hidden columns did not reconnect properly. This is not really a supported feature anymore and testing this was a challenge. You cannot create these using the Studio because we removed the uppercase option. You can create these using Database Builder.
6. Redid the logic for parsing an existing INT file. In prior versions we made the assumption that the different sections were separated by consistent prefix naming – field_, index_ and index_segment_. This turns out to not always be the case and this created issue with indexes (index name matching) and with the uppercase segments (it was not expecting a NEXT_COLUMN_HIDDEN keyword). This is now more robust.
Fixed Bug 7362: Studio issues with alias tables when using SQL drivers. Adding an alias or refreshing an alias raises errors
What's New in DataFlex 2019 - 19.1