This page shows the source for this entry, with WebCore formatting language tags and attributes highlighted.

Title

v3.1: New metadata builder API

Description

The summary below describes major new features, items of note and breaking changes. The <a href="https://secure.encodo.ch/jira/secure/ReleaseNote.jspa?projectId=10006&version=22502">full list of issues</a> is also available for those with access to the Encodo issue tracker. <h>Highlights</h> This release is a "bridge" release that has the entire new Metadata API as well as the older version, which is marked as obsolete. It is intended that projects upgrade to this version only temporarily in order to more easily migrate to the 4.0 Metadata API. At that point, projects should immediately upgrade to Quino 4.0, from which all obsolete methods have been removed. Once 4.0 is available, <i>there will be no more bug-fix releases for this release.</i> <h level="3">Metadata construction</h> <ul> Remove MetaId/Guid parameters from all metadata-building APIs Remove all dependencies and requirement for the <c>MetaBuilder</c>; make <c>MetaBuilder</c> obsolete. Drastically reduce the surface of the <c>MetadataBuilder</c> and base classes and improve dependency-resolution Replaced <c>AddClassWithDefaultPrimaryKey("A")</c> with <c>AddClass("A").AddId()</c> Added <c>AddForeignKeys()</c> step to builders and <c>AddForeignKey()</c> APIs Moved a lot of the builder-related extension methods from <c>Quino.Meta</c> to <c>Quino.Builders</c>. Added API to make it easier to add paths: <c>AddPath(classA.FromOne(), classTwo.ToMany("OneId"))</c> Fixed generation of extension classes (e.g. <c>PunchclockUser</c>). </ul> <h level="3">Data & Schema</h> <ul> Made all <c>GenericObject</c> constructors without an <c>IDataSession</c> obsolete. Removed last reference to the <c>GlobalContext</c> from the data driver Improved flexibility of caching subsystem and added default global/immutable-data cache (in addition to the session-based cache). Fixed schema-migration for SQL Server: not-null constraints are now properly added and trigger-migration works with pure SQL statements and has been drastically simplified. </ul> <h level="3">Configuration</h> <ul> Added <c>BootstrapServices</c> to the application to clearly delineate which objects are needed during the boostrap phase of configuration and startup Re-added all satellite assemblies for all Quino Nuget packages (ch-DE translations) </ul> <h level="3">GUI</h> <ul> Replaced all usages of DevExpress <c>TreeList</c> with <c>GridControl</c>/<c>GridView</c>. Added a lot of WPF controls and application implementation with a Sandbox.WPF project </ul> <h>Breaking changes</h> <ul> <c>PersistentEventHandlerAspect</c> has been renamed to <c>PersistentEventHandlerAspectBase</c> </ul> <h>Roadmap</h> The next step is to bring out the 4.0 release, which will include the following features, <ul> Remove all currently obsolete code Reshape the metadata API to be more task-based and to significantly reduce the surface revealed to the application developer. This includes a drastic reduction of extension methods in <c>Quino.Meta</c> Finish implementation and support for layouts everywhere (specifically as they are used for titles). Split <c>Quino.Data.Backend</c> out of <c>Quino.Data</c> to reduce the surface exposed to application developers. Deprecate <c>IMetaReadable</c>, <c>IMetaWritable</c> and <c>IPersistable</c> and replace with a more appropriate and slimmer API. </ul>