Changelog 2024
December 2024
New Features
Metadata Lookups (#381)
Added metadata lookup system
Better data relationships and lookups
Query Enhancements
Added ColumnOverride.IncludeAllContent
Include all content in query results
Courier Options
Added option to disable courier and inform if no recipients
Better message handling control
User Creation
Added CreateForUser with OriginalUser
Track original user in impersonation scenarios
Fixes
TimeZone America/Nuuk was renamed
TimeZone Europe/Kyiv was renamed
KeyValueList distincts wrong when text search is used
November 2024
New Features
.NET 9.0 Migration
BREAKING: Migrated to .NET 9.0, removed .NET 6.0 support
Take advantage of latest performance improvements
InitializeByCtorAttribute
Added InitializeByCtorAttribute
Support for constructor-based initialization
Idempotent courier messages (RavenDB)
Prevent duplicate message processing
Performance Optimizations
Optimize .Run for non-enumerables
LeastRecentlyUsedCache/Set implementation
Builder optimizations
Convert Language to ILookupKeyValueData
Fixes
Typo in SynchronizeBlacklist
Certificate loading on .NET 9 (RavenDB)
Keep POAWR casts logic in sync with FromServiceString
Maintenance
Updated packages
Builder marked as disposable with lazy scope creation
Use LINQ and collection expressions
October 2024
New Features
Courier Messaging System (RavenDB)
Added Courier for message queuing
Support for delayed messages
MessageType hook for custom handling
Reliable async messaging
.NET 9.0 Support
Added .NET 9.0 support
Prepare for next LTS release
TranslatedString Improvements
Added TranslatedString.DefaultGetLanguages
Various TranslatedString improvements
Better multilingual support
CLI Enhancements
Added vidyano-synchronize-schema CLI option
Easier schema synchronization
Authentication Extensions
Expose HttpContext on ForgotPasswordArgs
Add hook for GetExpressionForUserGuidColumn
Fixes
Report warning for minimum level was wrong
Breaking Changes
Keep semicolon in To field as single MailMessage
Changes email parsing behavior
Maintenance
AppHarbor no longer exists (removed references)
Consistent Tag properties across system
Provide explicit cast to PO[] for AsDetail attributes
September 2024
New Features
ExecuteBatch API
Initial ExecuteBatch and split ExecuteQuery implementation
Handle GetPersistentObject, GetQuery, and ExecuteAction in batch
Handle step assignments with DynamicAssignment
Major performance improvement for bulk operations
TranslatedString Enhancements
Added TranslatedString.IsValid
Better validation for translations
LabelHelper
Added LabelHelper for consistent label management
Centralized label generation
RavenDB Source Generator
Provide attributes for the source generator
Better code generation support
Fixes
Detail attribute loading after save of new object
Handle invalid sorting in .NET Core
Fixed issue #356
Maintenance
Performance: Prefer JsonPoolConvert usage
Compiler optimize unused ApplicationInsights
Updated packages
Show tooltip for locked settings
August 2024
New Features
Repeating Jobs
Expose IRepeatingJobManager
Added RegisterJobAsync method
DataType Support
Support [DataType] attribute
Better validation and UI hints
Settings Builder Extensions
Added ISettingsBuilder.MultiString/Custom
More flexible settings configuration
Updatable Logs
Added IUpdatableLog.Delete
Better log management
Web Application Integration
Added UseVidyano directly on WebApplication
Simplified startup configuration
Query Column Overrides
Added ColumnOverrides for GetQuery request
Customize query result columns
Fixes
AsReadOnly setting didn't work for DataType Password
Missing DataMember attributes
Missing reserved web2 words
Maintenance
Expose StartupErrors for manual invocation
Updated documentation
Updated packages
July 2024
New Features
Memory Diagnostics (#374)
Add memory information to diagnostics
Better monitoring of application memory usage
Log Hashing (RavenDB) (#375)
BREAKING: Added MessageHash to Raven logs
Enables deduplication and better log analysis
Query Sorting (#377)
Allow SortOptions to be passed to GetQuery
More flexible query result ordering
Date Handling (#376)
Improved invalid date handling with tests
More robust date parsing
Description Attributes
Read [Description] attribute for custom actions
Better auto-documentation
Fixes
BREAKING: Logs_Search index was wrong
Missing alias in SQL statement for IsUserAuthTokenRevoked (PostgreSQL)
Maintenance
Updated packages
Performance: Prefer lockless access in Optimizer
Trim and normalize line endings for Description
June 2024
New Features
RavenDB Database Check
Added default enabled RavenDBOptions.CheckDatabaseExists
Automatic database existence verification
Settings Improvements
TrackLastLoginDateWithTime setting
Decode Settings ID if not found
Better settings management
Logging Enhancements
Allow verbose logs on GetApplication
Log more data if ExecuteAction throws exception
Handle Language before user exists (e.g., invalid password)
Performance
Use Environment.WorkingSet for showing memory usage
Removed lock for GetCachedEntityModel
Fixes
Fixed cacheupdate reloading loop
Handle issue where user has a group ID that no longer exists
Maintenance
Dropped .NET 7 support (end of life)
Updated packages to .NET 8
Updated Web3 for test projects
May 2024
New Features
Query Optimizations
Added TryGetChildCollectionAsQueryable
Makes detail queries use database queries for better performance
Caching Improvements
Use byte array directly for cache set
Better performance for cache operations
IgnoreProperty Extensions
Allow IgnorePropertyAttribute on Context as well
More flexible property ignoring
Proxy Support
Added GetClientIpFromProxiedRequest hook
Better support for applications behind proxies
Fixes
Fixed issue with HasGlobalSearch not being set
Made verbose log more fault resilient
Maintenance
Updated packages
Publish artifacts for release pipeline
April 2024
New Features
Advanced Hooks
Added Advanced.PreUserSettings
Customize user settings before loading
KeyValueListHandler
Added KeyValueListHandler for custom key-value processing
More flexible data handling
Two-Factor Authentication
Integrate TwoFactor with IDistributedCache to prevent replay attacks
More secure authentication flow
Fixes
Reordering program units does not sort items correctly
Handle RequestUri when HttpContext is disposed
Maintenance
Removed obsolete code for DocumentFormat
Updated packages
Added mail documentation
NonNullable consistency improvements
March 2024
New Features
LazySessionOperations Helper (RavenDB)
Added LazySessionOperationsEx.NullLoad helper
Optimizes null checking in lazy operations
Array Helpers
Added AsArray helper
Fixed GetEntities bugs
Report Improvements
Prefer keys by default in GetReport
Added Advanced.IsReportAllowed hook
Authentication Enhancements
Added AuthenticatorService.GetAuthTokenExpiration
Better token management
Fixes
Handle IsAllowed on AsyncStreamingAction
Fixed issue on New with shadow FK in Entity Framework Core (#372)
Maintenance
Updated demo JSON files
Switch demo to Web3
Added mode to only update JSON files
Manager.GetGroup nullability improvements
February 2024
New Features
ISplittedValueObjectHandler Interface (#369, #370)
New interface for handling split value objects
Enables custom value object splitting logic
Caching Improvements
Added and implemented AggressivelyCacheForAnHour
Better performance for frequently accessed data
Manager Helpers
Added Manager.HasCorrectTimeZoneOffset helpers
Better timezone handling in applications
OpenOperation Extensions
Added OpenOperation.WithPreClient
Allows pre-processing before client operations
KeyValueList Enhancements
Added generic KeyValueListAttribute
More flexible key-value list handling
Virtual Entity Loading
Better handling of loading virtual entities
Improved performance for virtual entity operations
Extension Methods
Added CloneAndAdd extension method (#367)
Simplifies collection manipulation
Fixes
Don't use AsNoTracking if not optimized
Fixed Abstractions using wrong XML file
Fixed Web2 vulcanize call without path
Missing dialog translations
Maintenance
Security updates for packages
Removed unused CommonMark package
Updated packages
Prefer Attribute IsDefined for better performance
Prefer User Name instead of DisplayName in logs
January 2024
New Features
Entity Helper Methods
Added PO/POA GetEntity/GetRequiredEntity helper methods
Simplifies entity retrieval with null safety
Azure Storage Enhancements
Added AzureStorageAccount HasKey/GetContainer methods
Better Azure blob storage integration
BinaryFile Improvements
Added BinaryFile implicit cast to string and TryParse
Easier file handling and conversion
RavenDB Query Helpers
Added IRavenQueryable GetSum helper
Simplifies aggregate queries in RavenDB
PersistentObject Enhancements
Added PersistentObjectTypeName helper
Added POA.Actions for accessing available actions
Hide Edit/New/Delete lines on PO Rights detail query when not needed
Fixes
Ignored disposed DatabaseConnectionState for RavenDB
Ignored ConnectionResetException in custom API methods
Fixed calling RefreshOperation with only type name
Fixed bulk construct on POA/PUI/Settings using disposed actions
Fixed POA.Actions implementation
Maintenance
Updated copyright year to 2024
Updated NuGet packages
Added XML documentation comments
Note: Commits marked with (test) have been excluded from this changelog as they are internal testing commits.
Last updated
Was this helpful?