asna.com Sign In
ASNA Visual RPG 9.0 for Visual Studio 2008 

Release Notes for ASNA Visual RPG 9.0.77.0


Released to GA March 09, 2010

Software Requirements

Microsoft Visual Studio 2008 - ASNA Visual RPG 9.0 requires a valid licensed copy of Micosoft Visual Studio 2008.

Installation Notes

Visual Studio 2008 and 2005 Development - There is an issue with Microsoft Visual Studio 2008 that will break Visual RPG 8.x. There is a fix available from Microsoft (See link below) that must be installed if you would like to continue using Visual RPG 8.x on a machine that has both VS 2005 and VS 2008.

https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=10671

Visual RPG 8.x and Visual RPG 9.x Development - Please note that AVR 8.2 and AVR 9.0 are the only versions of AVR .NET that can be used concurrently on the same machine. If you are currently using AVR 8.0 or AVR 8.1, you will have to upgrade to AVR 8.2 to continue developing in both AVR 8.x and AVR 9.0.
Note that there is an issue with uninstalling a newer build of AVR 9.0 in a machine that has an older AVR 8.2.  If you wish to uninstall AVR 9.0 and continue to use AVR 8.2, we recommend that you uninstall both copies of AVR and then install a new copy of AVR 8.2

Upgrading from AVR 9.0.37.0 or earlier versions - Please note that there is an upgrade issue in AVR 9.0.37.0 and earlier versions that will cause an incomplete installation of AVR 9.0.69.0. Please uninstall AVR 9.0.37.0 or earlier versions before installing AVR 9.0.69.0.

Support for Microsoft .NET Framework - Please note that applications written in (or converted to) AVR for .NET 9.0 may target any of the .NET Framework versions available on Visual Studio 2008 (Framework version 2.0, Framework version 3.0 and Framework version 3.5)

The AVR compiler 8.2 (included in AVR for .NET 9.0) does not require any of the new features added to versions 3.0 and 3.5 (for example LINQ, Web 2.0 AJAX applications, WCF, WPF etc.). Your application may target Framework 3.0 or 3.5 if you have a specific need for any of the new features provided by the new frameworks. If you decide to target the new Framework versions, please remember to upgrade the servers or user PCs where the new application will be deployed.

There is an advantage in targeting the Framework 2.0 for AVR applications recompiled on AVR 9.0: when deployed on servers that only have .NET Framework 2.0, there will be no need to upgrade the server; AVR 9.0 compiled with Framework as 2.0 as target is backwards compatible with the .NET Framework 2.0 shipped with Visual Studio 2005.

New Features

Upgrade Assistant 8.2 - Upgrade Assistant is a tool that allows you to migrate an existing AVR Classic 4.1 application to AVR .NET 9.0.

Issues Resolved since the last GA release (9.0.69.0)

Asna Services

  • Case 12052. Auto-register DG/Windows with default (blank) Name/Company if AVR install information is absent.
  • Case 12052. Allow DG/Windows 8.x auto-license to get installation info. from AVR IDE 9.0.
  • Case 12039. AVR IDE 9.0 permanent license registration should also register licenses for DG/Windows 8x, DSS 8x and WebPak 8x.
  • Case 11899. Fix auto registrations following AVR 8.2 installation.
  • Case 11743. Construct IpcServerChannel to allow the network sid.
  • Case 11707. Complete automatic license upgrade from Monarch 4.0 to 4.1.
  • Case 11705. Refactor duplicate isXYZPermLicense methods to use a common isPermLicense method.
  • Case 11602. Upgrade license and registration services to current level.

DataGate Client

  • Case 12106. Protect client apps from invalid DSS file definitions where logical files have no base file by throwing dgException when the client detects the problem. Improve dgstudio handling of file def extraction exceptions in copy lib, drag&drop, view filedef, and extract-to-project.
  • Case 12100. Allow export browser to cache its database connection. Also, move responsibility for disabling the user form from the dg client to the prompting application, to allow the application to resolve threading issues.
  • Remove non-working fixes for dgstudio/DCS threading issues.
  • Modify the methods used to wait for asynchronous I/O completion for apps running in the STA thread.
  • Case 10903 continued. Replace redundant date/time conversion classes with single converter class in the ASNA.DataGate.Common namespace. Fix SqlBulkWriteFile using this class, so as not to break existing export files. This also fixes problems with date/time edits in the data editor.
  • Case 11994. Implement .NET config file-based scheme for runtime configuration of the print file renderer. Use Win32Registry methods to support legacy renderer config.
  • Case 10903, et.al. Numerous enhancements to the copy library command, including new options for ignoring data errors, object incompatibilities, and duplicate objects. DCS read/write XML ops now optionally include "cancellable" events. Fixed style and persistence problems in UI. Enhanced ADO-based network blocking to tolerate dg data formats and input data errors.
  • Case 8805 & 8807. Don't query subtype of subobjects in a library while enumerating the library, to avoid protocol lockup. This may be a temporary fix.
  • Optimize datagate client threads by using asynchronous network stream methods. Fix small bug in source dialog "test connection" command sequence.
  • Case 11923. Workaround DSS problem where the server crashes the connection when the directory is queried for base objects. Also, fix some bugs and inconsistencies in file def streaming code.
  • Case 11910. Create a separate impex output log, and activate the window & pane when a operation is begun.
  • Case 11844. Fix logic determining the number of spaces to pad unicode fields.
  • Case 11811. Set print dialog-compatible model (STA) for preview thread, and enforce STA usage for "prompt" dialog in ASNA.DataGate.Client.
  • Case 11681. Use 64-bit Windows compatible print dialog.
  • Case 11737. On some machines, attempting to access the HKCU from ASP.NET results in a non-specific COM error with a message stating something about an "invalid token". The HRESULT code on these errors varies, so we can't key on it. Instead, have the interop layer throw a general Win32Exception, which can be caught at the application level (DCS database name code), so that the code can press on with the search for the db name in the *Public hive. Also, improve the interop code's ability to return correct Win32 errors by using the SetLastError flag in the DllImport attribute.
  • Case 11638. Dispose of graphics objects in an attempt to prevent potential GDI handle leak.

DataGate Explorer

  • Case 12106. Protect client apps from invalid DSS file definitions where logical files have no base file by throwing dgException when the client detects the problem. Improve dgstudio handling of file def extraction exceptions in copy lib, drag&drop, view filedef, and extract-to-project.
  • Case 12123. When connection errors are detected, force the UI to collapse the node.
  • Case 12114. Fix yet another regression in case 10903 bugfix. The IAdgObject XML streaming callbacks now require user confirmation to cancel an operation.
  • Case 12113. Call the user's completion routine even when the operation is aborted due to exceptions. Set the OperationCompleted property in the event parameter object true only if the operation runs without exception.
  • Case 12103. Let no exception go unhandled in the export thread.
  • Case 12099. Disable rename command for connection nodes.
  • Case 12101. Only enable the import-related commands when a valid import file is loaded.
  • Case 12100. Allow export browser to cache its database connection. Also, move responsibility for disabling the user form from the dg client to the prompting application, to allow the application to resolve threading issues.
  • Case 12097. Check for null object reference in ReadXml logging callback (regression in case 10903 bugfix).
  • Case 12096. et.al. Don't config debug version of xslt scripts in the release software.
  • Case 10903. continued. Replace redundant date/time conversion classes with single converter class in the ASNA.DataGate.Common namespace. Fix SqlBulkWriteFile using this class, so as not to break existing export files. This also fixes problems with date/time edits in the data editor.
  • Case 10903. continued. Fix bugs in error log reporting, thread disposal, and minor UI changes. Provide programming interface for writer thread timeout of XML stream operations used in copying. 
  • Case 10903, et.al. Numerous enhancements to the copy library command, including new options for ignoring data errors, object incompatibilities, and duplicate objects. DCS read/write XML ops now optionally include "cancellable" events. Fixed style and persistence problems in UI. Enhanced ADO-based network blocking to tolerate dg data formats and input data errors.
  • A few more UI enhancements to the exception dialog.
  • Case 12018. Fix null value handling bug. Also, UI enhancements to render, validate, and enter null values. Also UI enhancement to render & optionally enter date/time values using the database format.
  • Add missing references to string constants for exception dialog.
  • Preserve previous dialog behavior of showing the dg-specific info on the details tab, and fix string value bug in the extended details tab.
  • Case 8449. Fix cRecs=0 boundary condition in cache manager.
  • Case 9197. Use file definition text, if any, to initialize the file object text field in the Create File dialog, if the file does not already exist.
  • Case 11948. Integrate recent impex toolwindow enhancements with dgexplorer "export" command.
  • Enhance the exception assistance dialog.
  • Optimize datagate client threads by using asynchronous network stream methods. Fix small bug in source dialog "test connection" command sequence.
  • Case 11910, et.al. Integrate property window selection tracking features into dgstudio import/export tool window. Display table of contents metadata for selected objects in the impex tool. Fix bug where impex Close command button was not enabled for import ops. Localize most impex log and other messages.
  • Case 11923. Workaround DSS problem where the server crashes the connection when the directory is queried for base objects. Also, fix some bugs and inconsistencies in file def streaming code.
  • Case 11910. Create a separate impex output log, and activate the window & pane when a operation is begun.
  • Case 11884. Fix bug introduced in recent data area fixes that could cause dgstudio to show null reference exception message boxes.
  • Fix problem where data areas were not exported as part of library export. Also, throw more descriptive exception when data area access is attempted against non-implementing db's.
  • Case 11883. Use "with data areas" option in impex import operation.
  • Case 11833. Fixes for draft of default value validation feature in filedef designer.
  • Case 11833. First draft of default value validation feature in filedef designer. No nulls, binary editor support yet.
  • Case 11811. Set print dialog-compatible model (STA) for preview thread, and enforce STA usage for "prompt" dialog in ASNA.DataGate.Client.
  • Case 11806. Back-out $/corky template changes.
  • Fix threading problem with new export command.
  • Cases 11751 & 11752. Rework the "export items" command for more consistent performance.
  • Case 11732. Minimize dgstudio connection duplication, and warn users before allowing *PROMPT connections.
  • Case 11677. Workaround odd atlas problem (where the database attempts to obtain a exclusive lock on the member before changing its text) by asserting a "shared read" lock when not opening the file for editing. Set the lock to "shared update" when opening for edit.
  • Case 11699. Sort nodes by name in dgexplorer's connection & dbnames list. Version: 1183 case 11699. Sort nodes by name in dgexplorer's connection & dbnames list.
  • Case 6969. Remove crufty code for persisting db label info to the config file, and streamline the serialization for the label "edit" command.
  • Case 11652. Fix typo.
  • Case 11525. Implement a "refresh" service that the data editors can use to tell dgexplorer that a file member has been modified (so it can update the record count in the properties window, etc.).
  • New item "wizard" functions to allow user to browse for base & key reference files when adding a simple logical or sql logical file.
  • Case 10919 (fallout). New item "wizard" functions to allow user to browse for base & key reference files when adding a simple logical or sql logical file.
  • Handle unexpected dgExceptions in "create file" commands.
  • Case 11525 (partial). Add new events to support change notification to dgexplorer.
  • Cases 11525 (partial) and 8088. Notify dgexplorer of changes to a file when records are added or deleted. Throw & catch exception when the query dialog is cancelled, instead of opening an empty window.
  • Case 11526. Add logic to workaround NewRow inconsistency in grid.
  • Case 11483. Throw exception dialog when service create/label db ops fail.

DataGate Server

  • Case 12118, 12119. Rethrow cpf2105 exception as dgEmNOTFND when it occurs in removeObject RPC. Do not specify NBRRCDS parameter in CPYF when ByRRN option is specified. Note that the count of records will always be ignored by dg400, since the copyData RPC always implicitly sets the ByRRN option.
  • Case 12089. Don't mask user space API helper errors.
  • Case 12088. Prevent the heap manager from deleting the cache memory twice, which can occur in the described scenario.
  • Case 12078. Fix *FIELDREF typo.
  • Case 11922. Must use VT_EMPTY if bstr is zero length for SQL 2000.
  • Case 11919. Implement a useful format ID generator for print files in dg400.
  • Case 11827. Handle tables and views with a domain-qualified schema/owner name.
  • Case 11664. Fix walk of REG_MULTI_SZ and include instances from 32-bit node if running 64-bit system.
  • Case 11799. Fix bug where the peer protocol level could be changed to an invalid value, causing trouble for RPCs dependent on later functionality.
  • Case 11671. Grant *PUBLIC/*USE authority to license objects created via pcode::externalize().
  • Case 11664. Get list of SQL Server instances from registry rather than udp messaging.
  • Case 5500. Expose file text from "pal" filedef object, so that dg400 can use it in the CRTPF, CRTLF, and CRTPRTF commands. In dg400 "set object text" rpc, escape single-quote chars in the string so the method does not fail.

Monarch Web Controls

  • Case 11889 DdsDec fields using Edit Word with minus sign changes the sign of a negative number to positive number.
  • Case 11845 Error in first subfile field control causes ERRORMSG property to raise on all subfile fields.
  • Case 11841 Paging quickly through ddssubfile control adds comma in fields with editcode -- make Ajax call synchronous.
  • Case 7471. Why are SubfileFold, SubfileDrop & SubfileMode implemented in DdsSubfile?
  • Case 11715. Subfile is collapsed upon itself in Modal Popup Window.
  • Case 11713. Subfile display is incorrect with UseSubfilePaging.
  • Case 11718. ErrorMessage should only interpret as indicator 2 digit numbers.
  • Case 11694. Multiple ErrorMessage conditions results in all messages incorectly displayed.
  • Case 11492. Need to handle trailing numeric sign better on DDSDecField.

Print File Designer

  • Case 11996. Build the command line converter as an x86 app, because it loads unmanaged x86 assemblies. Also, add some safety code in the bits shared by dgstudio, so we don't crash when VS services are not found.
  • Case 11472. Ignore dgEmINVPRTFILE exceptions when querying file properties.

Registration Assistant

  • Case 12011. Rename 8.x and 9.x WebPak nodes.

Renderer

  • Fix several operational & cosmetic problems with the renderer, mostly centered around "print preview" feature.
  • Case 11681. Use 64-bit Windows compatible print dialog.

Upgrade Assistant

  • Fixed issue with control arrays for textboxes. Fixed crash under certain conditions in control array event handlers.
  • Case 12107: Redirect print file conversion messages to log file instead of msgboxes.
  • Wizard sometimes misbehaves and forgets the output project name and output path.
  • Case 12005: Show correct type when casting an object to a DS.
  • Case 9338: Fixed COM class detection in an upgraded COM library when guid found in the registry is not found in the library.
  • Removed duplicate entry for FldColHeading in subfile control translation table.
  • Case 10810: Show print file conversion wizard only when there are ole printfiles to convert.
  • Case 10809: Fixed context of left-hand-side operand in a bin-op.
  • Case 11800: Fixed type for old style arrays declared with DclFld.
  • Case 12057: Fixed issues with control arrays of textboxes where the textboxes are of diffrent 'types' (char and decimal).
  • Case 11797: Fixed clash of names in upgraded user controls.
  • Case 11798: Fixed transaltion for locally declared arrays.
  • Case 11804: Fixed DclDiskFile w/o FILEDESC keyword translation.
  • Case 12073: Fixed bug in number of allowed arguments when translating SetNumberValue.
  • Case 12081: Added new runtime method to find the registry key object for a non-constant Classic baseKey parameter to *app registry key operations.
  • Case 11962, case 10802: Fixed *app registry ops migration, support return values.
  • Case 10802: Fixed transaltion of DeleteRegistryKey
  • Case 11867: Fixed bug in generating copy out code for event handler *byref parameters.
  • Case 11900: Fixed comments in DclParm. Also fixed bug in CALL with parameters when calling a form (was losing the parms and translated as EXFMT).
  • Case 10802: Added support for *app registry operation migration.
  • Generate correct type for DS type in *as expression.
  • Case 11920: Fixed tab caption translation, and lost control array when the individual components have different case.
  • Case 11902: Fixed bug in adding System.Windows.Forms reference for console apps with msgbox.
  • Case 10145: Fixed msg 9007.
  • Case 10801: Fixed control names that contain # or $ or @.
  • Fixed bug in positioning controls when there is a menu.
  • Case 11862: Fixed exceptions being swallowed by COM in 8.2, and improved the message shown for parsing errors.
  • Case 11898: Fixed parsing error for EVAL with two keywords.
  • Case 11816: Use MenuStrip and ToolStripMenuItem for menus in translation (deprecate old MenuControl)
  • Case 11814: Revisited solution due to lost code (edit and continue???)
  • Case 11851: Allow local declarations of printfiles (erroneously supported by Classic), move them as class members.
  • Case 11862: Added error message for exceptions while serializing Case 11854: Fixed translation of CLEAR for subfiles
  • Case 11875: Fixed bug when referencing StdOle objects.
  • Fixed adding ASNA's Controls library to developer (DEBUG build) machines' upgraded apps.
  • Case 11839: Fixed grammar bug when parsing 'complex' relop expressions.
  • Case 11831: Part 2: Fixed KLists. KLists in Main program will expand to their corresponding key parts when used outside of main.
  • Case 11831: Added EXSR to parmlist expansion.
  • Case 11831: Part1: Fixed access to plist fields in main from other programs.
  • Fixed crash when finding default values of expresions.
  • Case 11818: Fields generated by plists and klists are now public if in the main program.
  • Fixed bug when using UA 8.2 to target VS2008, where Output path was showing always the same value.
  • Cosmetic changes to wizard. Issue better exception message when detecting a parse error.
  • Case 11814: Revisited solution to issue EXFMT instead of CALL for calling form programs w/o *entry plist. Case 11814: Fixed generation of *entry routine for a form without *entry parmlist. Fixed destruction of form when *inLR is *on.
  • Fixed bug in generation of names for nameless DS. Fixed crash in getting default values when using a method call. Added Cancel button to print file conversion dialog.
  • Removed warnings for START and LENGTH in DsFld declarations.
  • Case 11489: Fixed copyright date.
  • Case 11700: Added option to cancel migration if a parsing error is found. Fixed UA termination when there's an exception in serializing the output project.
  • "OTHER" command was not indented in the same column as "WHEN" in Select block.
  • Case 11624: Don't allow UA in trials of AVR
  • Case 11701: Accept conditional indicator syntax that doesn't require the "CONDIND" keyword.
  • Case 11716: Fixed bug in determining types for Office classes in primary interop assemblies.
  • Case 11693: Add byte markers to utf-8 source files.
  • Case 11692: Fixed bug in scanning unicode chars in comments.
  • Case 11474: Fixed bug with *Propval and Get/Set symbol tables.
  • Case 11488: Fixed bug in CLEAR and in mapping of listbox Clear property.
  • Case 11484: Fixed #Star_ regress.

Visual RPG Controls

  • Case 11191: Fixed bug where the IODecimalField control's name would not get updated correctly in the designer file after a copy/paste operation.

Visual RPG Compiler

  • Case 10805: Fixed bug in finding DS type when DS is MODS.
  • Case 11926: Check for ASP when using MSGBOX.
  • Case 12084: Fixed compiler crash with *AS expression in MOVE
  • Case 12064: Added support for DELETE without key for subfiles (get the key value from RRN field)
  • Case 11727: Find the correct 64-bit reference (if it exists) in the ...\Program Files\ directory instead of the ...\Program Files (x86)\ directory.
  • Case 10480: Added check to redirect x86 builds from the AnyCPU compiler running in a 64 bit machine to the x86 compiler. Also, the x86 compiler will validate that references are AnyCPU for a x64 compilation (issues a warming). Other cases of different bitness between compiler and references will cause the reference to fail when loading (also a warning).
  • Case 12002: revisited solution as it created a break when using DS overlay arrays.
  • Case 11995: Fixed bug in propagating a symbol table replacement in the *AS expression node.
  • Case 12002: Fixed bug in LOOKUP and MOVEARR which were not allowing arrays declared in other classes.
  • Added missing TOKEN_BYREF to token translation table.
  • Case 11773: Fixed compiler crash when using a DS with non-dumpable DS fields as the target in a MOVE statement.
  • Case 10818: Support array overlays when array elements are overlaid with exactly matching fields (not just *chars and *zoneds).
  • Case 11436: Fixed wrong file in error message for LIKE resolutions in partial classes.

Visual RPG IDE

  • Case 12045: Fixed bug where adding an AVR Windows control to a form added multiple references to ASNA.DataGateClient and ASNA.VisualRPG.Runtime. This was fixed by loosening the restrictions on how assembly references are resolved. Some work may still be needed in regards to SpecificVersion handling. Also change the ProjectSystem project to be x86 only (all packages need to be x86 since Visual Studio is only 32-bit).
  • Case 11821: Added compiler warnings 5002 and 5003 to each project's no warn list.
  • Case 12098: Added UTF8 byte markers to all appropriate template files.
  • Case 12003: Fixed bug where the web project to web site upgrade was not preserving file encodings.
  • Case 11990: Fixed bug where going from the form designer to the code view took a long time. Changed the mouse cursor to an hourglass while this process is happening.
  • Fixed bug where a project would fail to load if a COM reference was not available.
  • Case 11733 revisited partial solution: sometimes paths to references point to GAC_32... fish in GAC_64 instead.
  • Case 11733: Support AnyCPU compilation in 64-bit machines. (partial fix, as we still need to be able to compile x32 projects in 64-bit machines).
  • Case 11874: Fixed %open and %found for dotted expression arguments.
  • Case 11855: Fix CLEAR not working for subfiles.
  • Case 11831: Added EXSR to parmlist expansion.
  • Case 11817: Fixed problem with adding COM controls to the Windows Forms designer.
  • Case 11465: Fixed grammar to return a valid node when using array expressions [ ].
  • Case 10946/11466: Fixed Crystal Report project problems in 9.0 (was already fixed in 9.1).
  • Case 11462: Fixed bug where assemblies are being added multiple times when creating a Crystal Reports Application.

Visual RPG Runtime

  • Case 12122. Application that terminates abnormally should not kill the IIS worker process expiring all other user's sessions.
  • Case 12081: Added new runtime method to find the registry key object for a non-constant Classic baseKey parameter to *app registry key operations.
  • Case 11984 Reading display file where last format is output only results in "Invalid Input Attempt".
  • Case 11962, Case 10802: Fixed *app registry ops migration, support return values.
  • Case 10802: Get- registry functions in Classic allow non-existent keys.
  • Case 10802: Added support for *app registry operation migration.
  • Case 11891 Reading display file instead of specific format results in "Invalid Input Attempt".
  • Case 11850: Remove "/" that was prepended at runtime to filepath for DB files and Print files.

 AVR 9.0 - (Series Items)

Access denied. You do not have permission to perform this action or access this resource.