Minor performance optimizations.
Bugfix: SqlCommandTimeout should apply to NHibernate queries.
Until now, the parameter applied only to ISqlExecuter queries.
Default timeout (30 seconds) added explicitly to Web.config.
Bugfix: Duplicate unique value error in IX_Permission_Principal_Claim on deployment
when migrating roles from AspNetFormsAuth to SimpleWindowsAuth.
Bugfix: AutoCode fails with unique index constraint error on concurrent inserts.
Bugfix: SqlCommandTimeout still not working on NHibernate queries.
Improved error handling in DSL parser.
New concept **Clustered**, for SQL indexes. Bugfix: order of index properties.
Bugfix: Filter by IDs cannot be combined with queryable filters.
Filter by IEnumerable<Guid> was implemented using materialized entity instances (arrays), so it could not have been easily combined with queryable filters, such as row permission filters. The problem usually manifested with NHibernate error on non-trivial queries, such as browse data structures.
FilterId entity is used as temporary data for filtering (list of IDs) to allow queryable filters above NHibernate limit of 2000 parameters in SQL query (see OrmDataStructureCodeGenerator.SnippetQueryableFilterById).
Filtering by ID is also added to GenericRepository (with some NHibernate issues) as a backup for entity repositories that do not implement a specific filter.
ServerCommandsUtility.CheckAllItemsWithinFilter is simplified by using entity (or generic) repositories' filter implementation.
IPersistenceTransaction.BeforeClose is added to allowe cleaning up the temporary filter data. The filter data cannot be deleted earlier because a query that is created in CreateQueryableFilterIds() may be used anywhere withing the transaction lifetime.
Release 0.9.21.
Refactoring: Removed circular dependency from index properties ordering implementation.
Refactoring: IDslModelIndex separated from IDslModel. Added DslModelIndexByReference.
Pluginable IDslModelIndex will allow more efficient implementations of concepts based on custom DSL model search, such as AutoDetectSqlDependencies.
DslModelIndexByReference, along with further optimization (GetKey, e.g.) will allow significant improvement in macro evaluation performance.
Added "Forgot my password" functionality to AspNetFormsAuth.
Sending the password reset token to the user is to be implemented as a seperate plugin (for example https://github.com/Rhetos/SimpleSPRTEmail).
Merge branch 'master' of https://github.com/Rhetos/Rhetos