Bugfix: TargetInvocationException instead of UserException was reported to the client.
AspNetFormsAuth: Token expiration parameter for GeneratePasswordResetToken.
Utility function Graph.GetIndirectRelations.
(for Hierarchy AllowedRelations)
'/Debug' option for DeployPackages.exe to generate ServerDom.dll without optimization.
Improved command-line arguments and DOM generator options.
Improved error handling when saving entity:
Writable repository's OldDataLoaded tag was abused for initialization without using old data (switched to Initialization tag).
Automatically unwrapping MetheodInfo.Invoke method's exception (TargetInvocationException wrapper was unnecessarily masking the source exception type).
More flexible GenericRepository save functions' interface (ref).
Required concept unnecessarily used ORM-bound objects.
Fixed some typos.
New concepts: KeyProperty and KeyProperties, for ComputedFrom to control when to update an item and when to delete old item and insert a new one.
Backward compatible with old ComputedFrom behavior where key property is assumed to be "ID".
FilterSaveExpression function moved from computation's dependency repository to target repository (the function was redundantly created for each dependency).
Improved null value handling for key comparison.
Cleaner structure of KeepSynchronizedOnChangedItemsInfo.
Key property comparison.
Refactoring: Hierarchy concept now inherits Reference.
Development environment ServerDom.dll is compiled in debug mode.
Minor bugfixes: CreatePassiveClone, RhetosTestContainer explicit server path, Graph.GetIndirectRelations for explicit self-reference, SQL null string and GUI constants.
Bugfixes: Refreshing migration data after deleting the migration table, Redundant items in Graph.GetIndirectRelations.
Bugfix: Reading *top n* or *count* from Browse data structure loads all rows from database, instead of transferring LINQ query to SQL.
Minor improvements in build scripts:
DevEnv.exe does not return an error code for batch script to detect failed build. DevEnv.com returns the error code.
Using ThisScriptFolder variable can be dangerous when batch scripts call each other.
Refactoring: simplified use of RhetosTestContainer.
Release 0.9.17.