v1.8.1: Remoting/application-server improvements

9/12/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.


  • The internals of the data driver have been rewritten to include separate analysis, caching, retrieval and local-evaluation handlers
  • The remoting driver is now a data handler instead of a low-level driver based on a database API (that never quite fit)
  • Data-caching improvements
  • (Almost) all singletons and creator functions have been moved to the service locator
  • All configuration has been integrated into the standard application startup
  • Improved schema-check performance over WAN by storing a hash of the model with the Quino metadata
  • Upgraded to DevExpress 12.2
  • Upgraded to MVC 4

Breaking changes

  • Most IQuery, IQueryTable and IQueryCondition (e.g. Where, OrderBy and Join) methods have moved from the interfaces to extension methods. Include the Encodo.Quino.Data.Persistence.Queries namespace to fix compile errors.
  • Namespace, Operation and descendents have been moved from Encodo.Expressions to the Encodo.Expressions.Operations namespace
  • NamespaceTools => OperationTools
  • SerializerTools has been renamed to MetaSerializerTools
  • ExpressionParserFactory has been removed; instead, use ServiceLocator.Current.GetInstance<IExpressionParser>().

| Warning |

This means that you have to regenerate metadata-based classes and code before doing anything else. That is, download Quino, build and deploy it and then regenerate your application's metadata-based code before doing anything else.

  • MetaExpressionTools no longer exists; use ServiceLocator.Current.GetInstance<IExpressionFactory>() to get MetaExpressionTools.ExpressionFactory instead.
  • ContentTypeRegistry.GetSystemIconFromPath() has moved to ShellTools.GetSystemIconFromPath() and the return type is now an Image rather than a Bitmap
  • The API for the IConfigurationActionProvider{TApplication} has changed. Instead of overriding StartupActions and ShutdownActions, override Apply instead. Also, ConfigurationActionProviderTools.AddActions() has been renamed to Integrate().
  • The RemoteClientFactory singleton has been moved to the service locator, so use MetaConfigurationTools.IntegrateRemoting() to include remoting instead of RemoteClientFactory.Instance = new RemoteClientFactoryAuto();
  • ControlAssignmentFactory.Instance no longer exists; instead, retrieve the instance from the service locator: ServiceLocator.Current.GetInstance<IWinformControlAssignmentFactory>()
  • CultureManager.Instance no longer exists; instead, retrieve the instance from the service locator: ServiceLocator.Current.GetInstance<ICultureManager>()
  • EncodoTestingTools and QuinoTestingTools have been moved to the Encodo.Testing.NUnit and Quino.Testing.NUnit assemblies respectively.
  • DisplayLanguageChangedMessage no longer exists; instead all language synchronization has been moved to the CultureManager. Use the CultureManagerTools.RegisterComponent() method to receive notifications when the language changes.
  • The Conf key in the LocationManager has been renamed to Configuration; any configuration files that used the old name should be updated to use the new one instead.

Sign up for our Newsletter