product-icon-avr

ASNA Visual RPG for .NET : Benefits and Features

Visual RPG Benefits and Features

AVR integrates tightly with Visual Studio

AVR is a first-class citizen in Visual Studio

ASNA Visual RPG for .NET Framework (AVR) snaps into Microsoft's Visual Studio where it uses such native Visual Studio facilities as:

  • source level debugger
  • user interface designers
  • source code editor (with Intellisense)
  • control model
  • deployment tools
  • unit testing framework

With AVR, you can build Windows applications, browser-based apps (intended for the Internet or your internal network), Windows services, Web services (using Windows Communication Foundation) and console apps--all in RPG!

AVR supercharged RPG syntax

AVR provides a supercharged RPG syntax that can be thought of as a blend of the best of RPG with the best of CL. AVR's syntax is, like CL, keyword-driven and indentable (much of AVR's syntax is also similar to ILE RPG's free-format RPG syntax). Field names can be as long as needed and many of the idioms have additional properties. For example, in the code snippet below, the Cust variable represents a disk file and it has an IsEof property (line 7 below) which is a Boolean value indicating if the file is at end-of-file.

You can write very modern, indicator-free RPG with AVR. However, if you insist, AVR is very backwards compatible with virtually all traditional RPG idioms and conventions, including RPG's built-in functions.

BegSr LoadGrid
    DclFld Row Type(*Integer4) 
    
    Do  FromVal(1) ToVal(GRID_SIZE) Index(Row) 
        Read Cust  
        If Cust.IsEof 
            Leave
        EndIf

        Write CustMem             
    EndDo

    gridviewCust.DataSource = CustMem.GetFileData()
    gridviewCust.DataBind()     
EndSr 

For example, lines 5 and 6 from above could be written like this using an indicator:

Read Cust EOF(*IN55) 
If *IN55=*ON
...

or like this using a built-in function:

Read Cust
If %EOF(Cust)
...

AVR's syntax is very easy for RPG programmers to get comfortable with.

High fidelity with the .NET Framework and VB.NET/C#

AVR provides a high level of fidelity with the .NET Framework. You can create classes with AVR that implement the same behaviors and member accessibility as VB.NET and C#. AVR's compiler was written by the ASNA R&D team and directly produces Microsoft Intermediate Language output--as shown below. 

Because of AVR's high-level of .NET Framework fidelity, AVR assemblies are consumable by VB.NET and C# (and most other .NET languages) and any VB or C# assemblies are also consumable by AVR. For example, this means that your AVR team could build rich business-specific class libraries (accessing IBM i data for example), that are consumable by your VB.NET or C# programming teams, abstracting IBM i vagaries away from them. This fidelity also implies that most products that primarily target VB.NET or C# are also usable by AVR. For example, there is a rich third-party UI control (providing sophisticated UI elements such as powerful datagrids) and these controls work fine with AVR.

Superb database connectivity

{caption}

AVR connects to an underlying database platform with ASNA DataGate. DataGate is available for three platforms:

  • DataGate for IBM i (DGi). DGi installs as a single library on the IBM i and is ASNA's host server that connects AVR to the IBM i's database. On the i, DataGate provides read/write record-level access to physical and logical files, a IBM i program call (implemented with CALL/PARM) that obeys the pass-by-reference semantics for passed arguments, and easy access to data areas. DGi obeys all IBM i-imposed security and authority rules and performs very well.
  • DataGate for SQL Server (DGSS). DGSS installs on a Windows database server and connects AVR to Microsoft SQL Server. DGSS translates, on the fly, AVR's RPG record-level access idioms to the underlying SQL needed.
  • DataGate for Windows Servers and Desktops (DGW). DGW installs on Windows servers or desktops and provides its own "local" database on that PC or server. The ASNA local database provides a semantically similar database to the IBM i's database, but implemented on the PC.

An AVR program can connect to any of these three DB platforms without any coding changes!