Compare Arnica script and Arnica Golang script objects hierarchy

May 14, 2020 by Igor Lozhkin
Original Arnica script is object oriented, with full support for inheritance, polymorphism and encapsulation. Arnica Golang script is not object oriented, however it still shares many functional solutions targeting rapid development of business applications. 

Arnica script encapsulates functions using classes, Arnica Golang script encapsulates functions in packages and sometimes implements them as functions attached to structs.

Below is a summary of classes and packages, compared side-by-side, explaining changes in Arnica Golang script:

Arnica Script ClassArnica Golang packageNotes
aaServerserverserver package is responsible for routing and no longer provides high level services for logging and configuration access 
aaCmdcmdcmd package continues to encapsulate general purpose functions, and is expanded to include more features. It also re-implements functions from the aaSystem class
aaContextSessionstate state package in Arnica Golang script re-implements functionality of the context services in Arnica script with upgraded concurrency capabilities
aaErrorloglog package implements error management as well as implements tracing and debug tracing 
aaFileSystemfilefile package encapsulates file and folder management functions
aaHTMLhtmlhtml package provides html builder functions
aaSystemsyssys function encapsulates specialized general purpose functions, such as encoding, encryption and others. More primitive functions have been migrated from aaSystem class to cmd package
aaSQLsqlsql package encapsulates general purpose SQL statement builder and management functions 
aaSQLSessiondbsdbs (database session) package encapsulates functions executing database queries 
aaUserSessionuseruser package encapsulates functions managing user session, authentication, authorization and access to user properties 
aaXMLxmlxml package encapsulates functions to work with XML. JSON functionality has been migrated to jsonpackage
aaWebwebweb package encapsulates functions, which work with a current web session and execute generic web requests
contextcontext package implements thread-safe current request state
jsonjson package encapsulates functions to work with JSON, migrated from aaXML class
configconfig package encapsulates functions to access server runtime properties