Release Notes for ASNA Visual RPG 9.1.44.0
Released to GA June 28, 2010
Software Requirements
- Microsoft Visual Studio 2008 - ASNA Visual RPG 9.1 requires a licensed copy of Microsoft Visual Studio 2008.
New Features
- 64-Bit Support - This version of ASNA Visual RPG 9.1 is compatible with 64-bit versions of Windows. Note that there are separate installations of ASNA Visual RPG 9.1 and ASNA DataGate WebPak 9.1 for both 32-bit and 64-bit operating systems. Please download the version that is compatible with your system. ASNA Windows Deployment has only one installation that can be used in either 32-bit or 64-bit operating systems.
- Connection Reliability and Disposed Objects – This version includes run-time enhancements to aid development of scalable multi-user DataGate applications. ASNA promotes the “Singleton DB Pattern” to improve performance in these applications, by sharing a single database connection and leveraging the DataGate connection pooling feature. While AVR web applications can reap large performance gains by implementing this pattern, the path to successful implementation has certain pitfalls which may only be revealed over time or in particular loading scenarios. The problems can be as trivial as a database file remaining open for a longer-than-necessary period of time, or as dramatic as loss of data. DataGate client is now more vigilant in enforcing the rules of database connections. In particular, when a database connection object is explicitly closed in a program, that connection is now marked as “disposed”, and any subsequent use of the object will cause DataGate to raise the ObjectDisposedException error. The intention of this is that developers can see and remedy the problem earlier in the development cycle, and avoid costly downtime when more obscure and difficult-to-debug errors occur in a deployed application.
Issues Resolved since the last GA Release (9.1.39.0)
DataGate Client
- Case 12461. Mimic adbfm's create database rpc, and never enable the secure database parameter.
- Case 12408. Don't disregard pooling timeout (qualifier) when comparing instances of SourceProfile.
- Case 12395. Fix broken filter logic.
- Case 11976. Attempt to purge all case-sensitive usage of the *Public prefix.
- Case 12361: Client now sets the "default value" for the column correctly for these fields. The viewer's column data type converters use this info to construct the correct grid cell data.
- Case 12311. Dispose the objects representing reset connections without closing the connection. "Reset" connections by generating a new connection object using the prior object's connection resources. Detect usage of a disposed connection object, and throw the proper exception.
DataGate Server
- Case 12423. Modify code that the c++ compiler optimizer apparently broke in this case. There is no known explanation for the buggy or fixed behavior.
DataGate Studio
- Case 12439. Substitute FileInfo methods for File.Replace(), which fails with an inexplicable "file not found" exception when the target file is on a compressed folder in NTFS.
- Case 12411. Changed tooltips to better reflect usage & terminology.
- Case 12399. Implement export loading as VS service, and use this as a replacement for dgexplorer's export thread procedure.
- Case 12398. Fix logging sequence.
- Case 12173. Properly classify parents of root library nodes. Attach label information to clipboard references.
- Case 11976. Attempt to purge all case-sensitive usage of the *Public prefix.
- Case 12391. Fix another grid boundary condition.
- Case 12392. Fix broken reflection bindings. Improve diagnostic feedback.
- Case 12382. Use culture-invariant conversion methods to serialize font metada to/from print file defs.
- Case 12208. Improve syncing of library lists & dialog.
- Case 12162 & 12233. Do not allow DataGate Studio to open a member for editing more than once. Sync all connection tasks (delete, rename, etc.) with open views. Close read-only views when database is closed. Prompt user when a edit view is open on a member contained by an object to be deleted.
- Case 11976. Fix character case comparison bug.
- Case 9343. Modified error text.
- Case 12171. Don't deserialize v9.0 connections to the tree.
- Case 12165. Implement requested feature.
- Case 12128 & 12151. Implement "scoped refresh" feature. The refresh button on the dgexplorer toolbar now consists of two latched commands: Refresh & Refresh All. Refresh All retains the behavior of the previous Refresh command, where all connections are reset and the tree essentially rebuilt from the roots down. The minor Refresh command invokes the new feature, which inavalidates all tree information from the selected node(s) to the leaves, and then reconstructs the invalidated branches. Most if not all dgstudio commands that implicitly invoked the previous Refresh command, now invoke the minor Refresh.
- Case 12361. Client now sets the "default value" for the column correctly for these fields. The viewer's column data type converters use this info to construct the correct grid cell data.
- Case 12178. Provide better feedback when the "no printers installed" condition is encountered in the print file converter.
- Case 12296. Prevent the availability of AxHost-based controls on the toolbox palette.
- Case 12187. Use case-neutral comparisons when searching for database name-based view options.
Monarch Web Controls
- Case 12470. DdsButton ButtonStyle="Image" with Mouse over image broken.
- Case 10775. Fix IE8 Compatibility issues when using Master Pages. There shouldn't be a need to set IE7 compatibility option.
- Case 12292. Internal 'Unique ID' is being used to format error messages instead of field-name.
- Case 12223. Add support for the RANGE DDS Keyword.
- Related to Case 12259. Added instrumentation to Monarch Framework to assit diagnosing the problem described in Case 12259.
- Case 12237. Virtual row returned by subfile is incorrect for multiple row subfile record.
Upgrade Assistant
- Case 12360: Fixed colors for new subfile migration.
- Case 12344: Added minimum width = 25 for those columns not having headers.
- Case 12343: Changed default of column header visible to true.
- Case 12306: Changed background color for result labels in page 6 of the wizard. Win7 styles have the old background black.
- Case 11826: Revamped comment processing to keep end-of-line comments at end of line.
Visual RPG Common
- Case 12250. Added support for format in %CHAR.
Visual RPG Compiler
- Case 12451. Fixed lexer bug, return newline when EOF is found if processing a command or free expression line.
- Case 12429. Fixed bug in lexer that set the line number wrong after a /COPY.
- Case 12417. Fixed bug in ZADD when result is a property.
- Case 12307. Count *byte arrays in the length of a data area DS.
- Case 12410. Fixed *byte field causing crash when used in a data area DS.
- Case 12369. Fixed bug in merging CASE statments in partial classes; they were not having their symbol table replaced.
- Related to Case 12342. Restructured subroutine list node to use a List<..> instead of a recursive structure.
- Case 12342. Fixed compiler stack overflow crash when compiling a method with several thousand statements: revamped some collection nodes to use iteration instead of recursion.
- Case 12307. Fixed *LDA writing more than the DS length (and wiping out valid data).
- Case 12308. Fixed bug in handling of DS parameters in subprocedures.
- Fixed bug when using *byref in arguments of implicit CALLB (eg. SomeClass.MyMethod(*byref parm)).
- Case 12248. Added support for fields declared with DS types to be used in %KDS. This only supports DS types declared in the same project, not declared in referenced libraries.
- Case 12250. Added support for format in %CHAR.
Visual RPG IDE
- Case 12473. Fixed a crash in the language service that only seems to occur on 64 bit machines.
- Case 12338. Fixed bug where project property pages were getting truncated in Windows 7. Also changed the combo box on the Build Events page from a DropDown to a DropDownList since it is getting mapped to an enum (a fixed list).
- Case 11817. Fixed problem with ActiveX controls when you add more than one control from the same library to a form. In this situation, the second control fails to get added to the form correctly.
Visual RPG Runtime
- Case 12453. Added LibraryName property to DBFile class.
- Case 12314. AddPFM generates error if Text parameter is null or blank.
- Case 12222 Add support for ALCOBJ/DLCOBJ CL Commands.
- Related to Cases 12260 and 12261: A failed attempt to lock a data area will raise the DataAreaNotLockable exception and contain the source dg exception in the 'InnerException' property.