v1.7.0.0: Application initialization, configuration, feedback and shutdown rewrite

2/14/2012 - Marco (updated on 9/18/2020)

The summary below describes major new features, items of note and breaking changes. The full list of issues is also available for those with access to the Encodo issue tracker.

New Features

Application initialization, configuration, feedback and shutdown rewrite

Generally, a lot of the functionality that used to be Quino-only is now in the Encodo libraries. Any application can now take advantage of:

* startup/shutdown management
* global exception-handling
* feedback
* logging
* software updates
* location manager
* login/authentication/authorization
* language/culture setting
* ApplicationSettingsBase management
* centralized configuration data 

In the feedback area, there is now a method to RequstInput() in addition to ShowMessage() and AskQuestion(). Console output has been improved quite a bit and logging is no longer automatically added to the output (can be re-enabled with --showlog on the command-line or by setting it on ICoreConfiguration.ShowLog). Command-line parameter/command-set setup is greatly improved. Unit tests for core applications are now supported and those for Quino applications are much easier to configure.

  • New configuration file format; makes it much easier to override values in an overlay file
  • Added ConnectionSettingsManager with support for multiple groups of settings
  • Migration UI is now in three components: ChooseDatabaseControl, LoadConfigurationControl and MigratorControl
  • Upgraded to DevExpress 11.2.6
  • Schema migration and import classes are no longer dependent on ADO; all logic is completely independent of external APIs
  • Integrated and updated the software updater
  • Drastically improved and simplified the API for working with Quino applications in unit tests
  • Added support for working with core applications in unit tests
  • Schema migration and import APIs have been drastically improved and simplified


  • Database testing classes now use mixins to customizer for different databases; drastically decreases repeated code
  • MetaAccessToolkit now allows override of default access-checker
  • MetaEditPanel.UpdateControls() is now public and refreshes the view for the current EditObject (QNO-2906)
  • Enabled state of a control can now be controlled by aspect (QNO-2882)
  • Renamed a bunch of classes that were still called *Method instead of *Action
  • Support for single sign-on
  • Added StringTools.TryNormalize() to create an identifier from custom rules; changed MetaTools to use this method instead
  • StringTools.AddLeftMargin() no longer leaves a trailing leftMargin (used to do this when there is a trailing newline)
  • LoginForm now manages focus better (depending on whether name is empty)
  • IApplicationToolkit.GetDescription()
    • parts argument now has a default value
    • Accepts an optional argument "rightMargin"
  • Bug fixes for the enhanced incident reporter forms (screenshot names, etc.)
  • Added support for walking the nodes of a DevExpress tree
  • Integrated support for HSV colorspace (makes color and contrast calculation much more intuitive)

Breaking changes

  • Renamed IApplicationContext => IMetaApplication
  • Renamed IApplicationToolkit => IMetaConfiguration
  • Renamed GlobalContextBase => IGlobalContext
  • Renamed GlobalContext.Instance.ApplicationContext.Toolkit => GlobalContext.Instance.Application.Configuration
  • Configuration data file format has changed (see Configuration files for more information)
  • Renamed UnknownEnumValueException => UnexpectedEnumValueException
  • Renamed fields in History module (QNO-2905)
  • Renamed IMetaReadable.Stored => IMetaReadable.Persisted (QNO-2802, QNO-2893)

Sign up for our Newsletter