Flynet Viewer 2016DL Enhancements and Fixes

Security Enhancements to Flyserver.exe Emulation Service

New License Manager with Smoother Server Installations

Flynet Studio Adds WebApi RESTful JSON option for Web Service TaskModules as well as a new ScreenAPI Task Generation action–this includes generation of a SWAGGER.JSON file to enable integration with a broad variety of web application frameworks and other clients such as Xamarin c# apps.

New license verification integrates with the Inventu web service to ensure non-counterfeit versions of the Viewer server are being installed by customers.

License verification no longer requires the use of a license .fvl file to install on “locked-down” servers. If a server has no outbound http access, a dialog is displayed with a URL that can be copied and pasted into a web browser on the remote desktop client PC. This URL contacts the Inventu licensing server and returns a long text string to be copied back to the setup.

The FlyServer.exe now verifies that the active code-signing certificate is by Inventu Corporation and that no modifications to the binary have been made (security enhancement)

New PowerShell Scripts have been authored to assist customers in upgrading servers with new versions. These are available via the FlynetSoftware.com downloads page.

When updating an existing server during the uninstall of the prior version, if the Event Viewer was open on a FlyServer.exe event, it could cause the system to reboot! This has been fixed.

Introduction of new configuration user interface – FVTerm/Config/EditHosts.html provides new way to manage host definitions with integrated help and a “New Host” Wizard. This is first module in a family that will be integrated and provide far easier management of all the functionality in the Inventu Flynet Viewer Emulation Service. Future modules include full FVTerm web server (replacing directly editing web.config) and EditProfiles which introduces the Profile definition, providing flexible management of the client UI and connection options on a more granular basis.

Can now specify Codepage 1140 – UK with Euro

Evaluation keys are now limited to 10 sessions per server to prevent production use with unauthorized keys- evaluators needing larger configurations can request a short-term subscription key from Inventu

Added new Copyright Notice.rtf found in the .bin folder documenting all copyrights for the core emulation service

Added support for terminfo kend (end key) definitions

Added Codepage 1140 – UK with Euro

Better synchronization for file transfer operations

VT protocols now catch an undocumented protocol command that stops box-draw character mode

During IND$File, prevent a client timeout in FVTerm when the closed browser detection is active

Fixed bug with 3270 IND$File transfers and very large files

FVTerm Web Terminal Emulation Feature

Fixed a localStorage problem with initialization that causes some emulators to only show a blank welcome page on connection to the SCTerm.html page. Anti-virus programs and other settings can cause an exception when testing for the presence of localStorage. This will no longer break the emulation environment.

Websockets continued improvement in screen synchronization and error recovery, reducing the incidence of the client needing to refresh to clear an error due to network instability and tighter control of cleanly closing the socket.

Touch screens default to web entry field—in April versions, if default is a terminal emulator style, touch device users needed to know to touch the cursor to get a keyboard to use. With the update, the keyboard on touch devices will automatically display.

Added versioning to server-side macros so that a new version can be deployed to a live server without needing to over-write an in-use assembly

FVTermParent.js updated to sync with child FVTerm javascript at startup. Also added improvements to how events are bubbled-up if a screen update is managed by one function and the update should not be use to trigger the OnNewScreen event

FVTermParent.js added a completion function call to the StartMacro function as well as an “atServer” parameter to indicate the macro is server-side.

Updated server-side macros to include target host list and target active directory groups so that a server-side macro can be maintained in the root folder instead of copied to each host folder it applied to

New RPC Server-side macros can now be called by client-side javascript as a remote procedure call, with parameters passed instead of needing to display a dialog box with entry fields in the user interface

Added a <–Preserve Start –> section to Macros/MacrosMgr.htm to enable adding a persistent javascript block specifically to support document.domain in environments where the parent page using the javascript API is running from a different server and document.domain is needed to ensure access between iframe and parent pages.

Macros/CfgAdmin.htm has been updated with a few new configurable items interim to adding all the new configuration editors and wizards that are part of the configuration upgrades for Viewer 2018

Flynet Studio (Build: 5.0.0.210)

Flynet Studio Base Framework

Added the Roslyn Compiler to the install to enable support for the latest version of CodeSmith 8.0 generator. Further work was performed to make template caching fully functional between sessions. The result is vastly improved generation speed both for “first time” use and subsequent executions of the Flynet Studio.

Flynet Studio Web Services Design and Generation

Added new TaskModule Web Methods type: Web API

When Web API has been specified for a TaskModule, a new context menu item is available on the TaskModule: ScreenAPI / Generate New ScreenAPI Tasks for Module. This generates a GET and if screen has writable fields, a POST Web API method for each screen containing at least one FieldMap

The ScreenAPI / Generate New ScreenAPI Tasks for Module can be run at any time and any screen that has not had methods generated will have a new Screen GET added and a POST added if there are writable fields defined on the screen.

For Web API Modules, a full Swagger.json file is generated fully defining the GET and POST operations for each task in the module.

Added new TaskModule property – LogonAsPost which ensures that any credentials passed in a logon will not be part of the url (security enhancement)

Integrated Visual Studio Package Management for NuGet functionality for the necessary packages for the .NET Web API implementation. For workstations with no Visual Studio installed (not recommended for Studio!), NUGET will need to be installed – see https://docs.microsoft.com/en-us/nuget/what-is-nuget for more information

New session timeout option that is temporary and is cancelled by any activity on the session, enabling faster recycling of sessions as well as better management of user connections

FVTerm Web Terminal Emulation Feature

Client-side macros are now supported for ASCII protocol terminal sessions (VT220, Wyse and so on). Activated with web.config setting VTMacros=yes.

Improved web socket recovery when the internet connection between the server and client has poor reliability or web socket compatibility problems.

Back-button fix to take advantage of newer DOM options with the window.history object—results in fewer session issues when a user clicks the backbutton or accidently presses the backspace key outside of an entry field.

Startup URL can now include a filter to mask certain host tiles from displaying after the user has closed the initial session. Default tiles can be hidden while new tiles can be added with the filter.

Clipboard support improved to make use of Ctrl-C and Ctrl-V work naturally without the need for a popup. For block copies of screen data, the Clipboard copy icon works automatically to copy to the clipboard. Copying to multiple entry fields now will block copy using the original rows so that copying source code in mainframe environments works as with an IBM desktop terminal emulator.

A user “Problem Report” function can now be configured so that users can report issues with a simple form—a text file is created on the server in the FVTerm logs\reports folder which includes active the client-side websocket log.

If a load balancer is active, a web.config setting can be used to delete any load balancer cookie if the actively connected server is on-hold. This enables a smooth connection when a user’s server has been put on hold for maintenance.

Added support for the Windows Performance Monitor to track response times, web socket sessions and so on.

The FVTerm browser window title (default=”Flynet Viewer Host Access”) can now be controlled with a web.config entry to customize for customer environment

Added client response time statistics that are optionally written to a CSV file that can be analyzed in a spreadsheet. When a client closes his or her session, a record is written with the average response times both at the server and client, along with maximums and number of screen entries made during the session.

3270 Extended Attributes expanded to include attribute changes in text without an attribute byte required.

3270 auto-skip on unprotected fields is more consistent with desktop terminal emulators

Clickable function key buttons can now be transparent to minimize cosmetic differences from a desktop or java-based terminal emulator

All alerts, confirms and other javascript calls that can lock-up the active thread were replaced with non-blocking user interface elements that have “continue” logic connected. This ensures that background activities can continue if an alert or other element is displayed.

Added support for mouse-click detection (right, left or center) with ASCII protocols; sends a user-defined escape sequence with the button and cursor location of the click

To ensure version integrity, an option will force a user to upgrade active javascript as soon as connecting with out-of-date cached javascript and html.

A web.config setting (minWorkerThreads) can now be used to increase the minimum worker threads in the .NET FVTerm thread pool. Large configurations (over 500 sessions) should use this and set it to twice the configured sessions.

Can now configure that a double-click on a screen will act as an enter key

For ASCII terminal types, added support for function keys in the range 25-36 inclusive–setup in web.config and terminfo.txt

Added AutoPrint server-side macro support, with definition files providing compatible functionality with HOD ZipPrint—providing screen-prints spanning multiple screens. Any server macro can also create a print job that will appear at the client browser when the print job is closed.

Can now override the default font sizes for print screens with different font sizes for 80, 132 and 160 column screen formats.

Improved synchronization and performance of server-side and client-side macros

Server macros can now declare group membership internally, so that macros do not need to be copied to multiple host folder trees. A server macro can belong to multiple hosts and Active Directory groups based on attributes specified in the source of the assembly.

Server macros can now specify a version that enables updating an active macro without needing to recycling the FVTerm v4.0 application pool

Flynet Viewer Studio (Build: 5.0.0.209)

Development Environment

If both IIS and IIS Express are installed—a new Options property is displayed, IISExpressPreferred, which if set true will orient all development options to IIS Express (UI Web Preview Tab for example).

Generated Applications Framework

The TaskSession class is now generated with a TaskSessionCG (with methods and properties made virtual to enable overriding) and a customizable TaskSession class, which is a child of TaskSessionCG. The TaskSessionCode property has been added to the TaskProject so that user customization of the TaskSession Class can be saved in the Flynet Studio Project.

Debug class can now be extended by developers in Visual Studio in the generated solution; added DebugClassCode property on a TaskProject so that the Debug class can be customized and saved in the Flynet Studio project. Main body of original Debug is now the DebugCG class.

Now using the MSBuild included with VS2017 if VS2017 is present and selected. Prior to this, the active .NET MSBuild was always used—also now using x64 MSBuild if present

Added support for .NET Frameworks 4.6, 4.6.1, 4.6.2 and 4.7

Added support for IIS Express—can now develop without IIS and without being an Administrator

Pooled session encrypted credentials file can now be encrypted using a FIPS compliant AES crypto service—previously used a RijndaelManaged crypto-provider

All encryption libraries, including hashing for file versioning now is FIPS compliant in the Studio product

Improved dynamic menu option detection to include spaces in the menu number/letter portion of the menu Regular expression

Modernized Web UI Generation

Added the UI Base Controller (ViewControlBase) class which enables all UI controllers to have an additional location for customizations through overrides or additional methods or properties can be defined which will affect all UI controllers. Moved original body of ViewControlBase to ViewControlBaseCG.

Web Service Generation

Added clipboard cut/copy/paste of Task objects in the TaskTree using the mouse right-button context menu items

Added CustomMethodsCode property on a TaskModule so that any custom methods to replace or supplement web service methods can be saved and regenerated from the Studio project

Added support for resource folders for webservice generated Visual Studio projects, similar to the resource projects for UX projects

Visual Studio Add-In / Extension for Visual Studio 2015 and 2017

This extension is now completed and more stable and reliable than its first version—support has also been added for Visual Studio 2017 — the prior version did not actually work with VS2017

Taskbar control is now elevated to Administrator status to avoid loss of control over services

FVTerm Web Terminal Emulation Feature

Scrolling for ASCII terminal types now supported–when a terminal scrolls, the client browser space will gain a scrollbar to the right, which when moved will reveal the scroll history. Configured with web.config setting with scrollHistoryMax to set the maximum scroll lines maintained in the browser

Installer will now preserve specially commented areas in the files SCTerm.html, welcome.htm, topmenu.html and showkeys.htm –these are now included and allow the inclusion of javascript to set a custom document.domain for environments needing javascript calls between the FVTerm environment and a hosting customer web page

WebSockets in clustered servers had an issue when a server took-over sessions for another server, which would prevent use of WebSockets for those sessions (downgraded to AJAX)

Server Macros added new Status Message as well as additional support for converted macros

VT added support for true double-width lines, including font transforms to stretch the font width

VT Blinking Attribute restored to support true blinking in the HTML/CSS

Improved support for serverInfo web.config setting–now allows @ to signal that instead of text, a filename is referenced. This allows identical web.config files to be propagated across servers while retaining each server’s unique identity

In the status information for the FVTerm client, the user’s IP Address, LUName and additional info (like serverInfo) is provided when moving the mouse over the ? icon

Added support for load balance inquiry with the FVHealth.aspx module, documented in the FVClusters help documentation

Can now customize specific CSS files for specific hosts, so that different hosts can have different colors, even if for the same protocol

Operator Help was improved to display latest help in an improved format

The implementation of the hotspots javascript SCHSDefs.js file was enhanced to enable fully customized detection of function key definitions. A sample is included that supports definitions with text followed by the number of the function key

Added optional web.config option that a double-click with the mouse will enter the current screen with an [enter] key (along with the cursor position of the mouse)

Cursor Blink is now more reliable across all browsers

Microsoft Management Console Add-In (FVMMC) and Recorder 2.0

MMC Console has improved clustered server support including the ability to view hold status as well as set hold status for selected servers

Recorder 2.0 enhanced to support better documentation of each screen as well as viewing and modifying documentation in View mode

Recorder 2.0 handles host closing the connection to properly terminate and convert to final recording format

Improved keystroking for ASCII hosts in Recorder 2.0 so that keys are buffered during communications which results in better, more consistent navigation in FVStudio code generations

Development Environment

Fixed issues with custom navigation to screens not properly recognized

Subscription-based licensing support was added for Studio

Converted all calls to the CSC.EXE c# compiler to utilize the .NET Framework, which adds more reliability and improves error management. Some cases where a warning is displayed about the CSC.exe version should no longer occur.

Generated Applications Framework

Improved navigation in ASCII terminal environments

Added CursorStateSave to enable faster recognition when one ASCII screen behaves like a popup and may leave the cursor in an entry field instead of the location used for recognition

Added ability to specify a column in a multirow fieldmap as one where the cursor may land in an ASCII screen, so that recognition works faster and more reliably

Modernized Web UI Generation

New option supports user refresh of a live UI application without restarting the application (refreshes for active screen)

Fixed and improved some issues with the FVPage UI base class

Improved initialization of the FVTerm embedded emulator to speed startup

Web Service Generation

The VisualStudioFolderName property and functionality is now supported for Web Service projects as well as UI projects, which allows a directory of custom class modules

WcfTester.html was generated incorrectly for EDIT screen IO Types

Visual Studio Add-In / Extension for Visual Studio 2015 and 2017

A Visual Studio Extension is now available for Visual Studio 2010 and above — prior to this, VS2015 and VS2017 were not able to utilize the extension which offers power-tools when modifying a Flynet Visual Studio Solution