Changelog 2020
December 2020
New Features
RavenDB 5.1
Switched RavenDB to version 5.1 (#289)
Major version upgrade with performance improvements
Application Virtual Path
Let Advanced handle ApplicationVirtualPath
Added ApplicationVirtualPath to GetRequestUri
Fixes
Fixed issue when GetSettingEntity is used with locked value
Fixed issue #288
Maintenance
Reduced usage of internal members for provider packages
Removed dependency on internal Profiler class
Web2Cdn changes
Nullability improvements for Advanced
Improved IsEfQuery detection
Cache SmtpConfiguration KeyValueList
November 2020
New Features
.NET 5.0 Support
Added .NET 5.0 target framework
Updated to latest framework version
Configuration
Added DisableLogDeletion configuration option
Better control over log retention
Mail Features
Added support for SmtpClient.PickupDirectoryLocation
MailImplementation missing features added
Fixes
Fixed NRE when websites.json is invalid
Handle Log offset on Linux
Maintenance
Updated Eazfuscator to 2020.3
Updated NuGet packages
Fixed contentFiles handling
Handle Eazfuscator obfuscation issues
RavenDB: Updated client package
RavenDB: Show log expiration information
RavenDB: LookupReference handling
Enable XML documentation generation
Nullability improvements
POA nullability
October 2020
New Features
KeyValueList Support
Added KeyValueList support
Better handling of key-value data
Custom Queries
Discover and sync CustomQueries
Automatic discovery and synchronization
Mail Service
Prefer IMailService interface
Better mail service abstraction
RavenDB Enhancements
Added IConcurrencyTokenHandler
Added AddObject overload method
Prefer interface usage
Implement most needed cases on POAReference
Fixes
Fixed exception when UserName is missing in body and no Authorization header is given
Fixed roundtrip handling for ConcurrencyToken
Fixed obfuscation issue
Fixed missing property for translations
RavenDB: Fixed profiler issue
Don't sort value objects
Maintenance
Made RepeatingJobs async
Remove temp type if not used
Use generic internal metadata on PO for extra client data
Reduce need for internal access for providers
RavenDB: PersistentObjectActionsReference in package
RavenDB: Use correct PackagePath for POAReference file
RavenDB: Prefer PersistChanges over Context.SaveChanges directly
Profiler improvements and parameter serialization tweaks
September 2020
New Features
Security Enhancements
Security changes and fixes
Better security handling
CORS Support
Added UseVidyano CORS hook
Enable CORS configuration
Model Hashing
Added model hashes
Better model versioning
Fixes
Fixed issue with static resource requests being passed to GetIndex
Don't fail when trying to include RequestId in Exception message
Fixed issue with repeating job using wrong TimeZone offset
Fixed issue when ExecuteAction gets a form submit without extra files
Fixed issue with AppInitialization
Fixed obfuscation issue with nullable annotations
Fixed issue with business rules with arguments not being invoked
RavenDB: Fixed OptimizeSelect issue when working with Reduce index
RavenDB: Handle ColumnReferenceEntity with empty id
Maintenance
Performance: string optimizations (array vs string)
Split Where in Where/ApplyDataSecurity
Handle string to JObject, better exception message
Improved logging OneTimeJobHost/RepeatingJobHost
Web2Cdn: Tweaks for cdn2
Web2Cdn: Don't append / to appsettings.json Web2Version
RavenDB: Updated RavenDB.Client package
RavenDB: Minimize database calls when user doesn't have UserSettings
RavenDB: Handle IEnumerable property text search
Return SystemLanguage for DefaultLanguage if cache is not loaded
Don't use app.UseHttpsRedirection()
August 2020
New Features
Time Zone Handling
TimeZoneHandling changes
Better timezone support
Naming consistency in TimeZoneInfo
User Management
Added CreateNewUser overload to add user to multiple groups
Better user creation options
Computed Attributes
Allow computed attribute with nested property
Added HasComputedAttribute method
Fixes
Fixed issue #285
Typo in ExceptionHandlerService RequestId logging
Maintenance
VidyanoDbCache.GetUserOrGroup(name)
Allow nested dynamic properties
Optional metadata for ValueObject
Show better message for repository upgrade
Tweaked assembly version handling
WebControllerLogger, default RequestId, fixed hour offset mismatch
RepeatingJob, fixed wait time and timezone handling
Improve GetObjectSet for RavenDB inheritance
Handle embedded ValueObject collection
PO type selection for ValueType collections
Comment, nullable annotations
RavenDB: Added DatabaseSettings.UseGuidIdentifiers
July 2020
New Features
Configuration
Expose IVidyanoConfiguration
Better configuration access
Maintenance
Skip EAZ for RavenDB
Allow nested dynamic properties
Optional metadata for ValueObject
June 2020
New Features
Cache Updates
EFCore cacheupdate basic implementation
Improved performance for LastLoginDate cacheupdate
CacheUpdates improvements
RavenDB Features
RavenDB: Prefer waiting for indexes when saving changes
RavenDB: Allow easier customization of DocumentConventions
RavenDB: Added ITargetRavenDBContext
RavenDB: Project helpers
Fixes
Fixed issue when synchronizing EF model
Fixed synchronize issue when multiple ValueObjects exist
Fixed translations issue
Maintenance
Better Excel invalid xml chars handling
Optionally use certificate store for RavenDB certs
Allow App_Data in ContentRoot
RavenDB: Added RavenDBOptions.EnsureDatabaseExists
Disable cacheupdate setting
Don't require Mapped attribute for context entities
Prefer EntityModel.GetHash()
Handle Enum and IgnoreProperty
Set IsValueObject on PO
ITargetContext shouldn't be IDisposable
Update cache after successful savechanges
Implement RavenDB cache updates (#277, #278)
Default New User in management to IsEnabled
RavenDB: Extra extension methods
Prefer StatusCodes over HttpStatusCode
May 2020
New Features
Charts
WIP line chart implementation
Charts: Move BarChart to ProviderSpecificChartService
WIP provider specific chart service
RavenDB Enhancements
RavenDB: Document expiration for logs
RavenDB: Document expiration for RegisteredStream
RavenDB: Prefer appsettings for connection info
RavenDB: Updated client version
Fixes
Fixed GetReport
Fixed updatable log not working in EFcore
Fixed ExecuteAction with input file not working
Fixed Except on DbSet
Fixed issue when changing Setting Description
RavenDB: Fixed Log User
RavenDB: Fixed updatable log
RavenDB: Fixed feedback screenshot showing
RavenDB: Fixed issue with DistinctValues
Fixed issue with not being able to save QueryFilters
RavenDB: Fixed sorting and filtering on reference attribute
Maintenance
Trust Cloudflare as a proxy
Also flag Edge as outdated
ArrayDeconstructionExtensions added
Expose NeedsSimplifiedExpression
Fixed report documentation URL
Provide hook for non-Windows IsValidImage validation
RavenDB: Also delete profile/settings when deleting user
Async OneTimeJob
Prefer HttpMethods over HttpMethod
IFeedbackDto removed unused Screenshot property
TODO cleanup
April 2020
New Features
Major Architecture Overhaul
BREAKING: Complete repository provider abstraction
Split User/Group functionality
Added IRepositoryUserStore
Moved all DbSets from VidyanoDbContext
Added IRepositorySettingStore
Dependency Injection
Use DI for creating PersistentObjectActions objects
Extra DI changes
Updated group actions for DI
Configuration
Added VidyanoConfiguration
Create random salts/token on startup if needed
Allow extra data on JWT token
Schema Synchronization
Finalized EF Core schema synchronizer
Added schema synchronizer for non-EF model
Fixes
Fixed GetDiagnostics/Api not working
Fixed invalid initial schema SQL
Fixed issue with invalid PK type for Vidyano.Logs
Fixed Parameterize obfuscation issues
Fixed redirect issue when going to website path without trailing slash
Fixed setting profile value when no profile exists
Fixed incorrect use of IServiceProvider for ActivatorUtilities
Fixed bulk edit on POA
Maintenance
Removed License PO
Working RavenDB implementation
Added EntityFrameworkCore logging
Only create new ServiceScope if needed
Fixed projection issues
RavenDB: Fix log filtering
Fixed issue with serialization of DataTypeHints
RavenDB: Handle references
Added DelayedCount support
Added ProviderSpecificService.GetEntityByObjectId
Allow start from empty model.json/culture.json/security.json
Persist culture.json/security.json when empty
Added NoDB UserSettings/UserProfiles
Also delete usergroups when removing user
Move GetTotalItem to ProviderSpecificService
EFcore: Parse issue with logging parameters
Use AsyncLocal fields instead of CallContext
RavenDB: Correctly flag as needsSimplifiedExpression
RavenDB: Ignore projected fields for GetTotalItem
RavenDB: Include DB profiling
Fixed TypeHint serialization
RavenDB: Moved database to production server
RavenDB: Handle GetGroupingInfo/GetTotalItem
RavenDB: Don't optimize projections
RavenDB: Fixed issue when using reference attribute with other PO type
RavenDB: RegisteredStream
Fixed issue with OnGetStream
Removed old Web1 binding
Fixed issue with initial run not loading data types correctly
Updated SwaggerInfoAttribute
Tweaked handling of AsDetail value objects
Nullability tweaks
RavenDB: Added Orders/OrderLines
March 2020
New Features
Service Worker
Added service worker support
Better offline capabilities
Value Objects/ViewModels
Added ValueObject/ViewModel attribute
Better data modeling support
Nullable Reference Types
WIP #nullable support throughout codebase
Better null safety
In-Memory Logging
Added InMemoryLogProvider
Removed DisableLogs
Fixes
Fixed index.html for Chrome80
Fixed issue with not being able to search on computed displayattribute
Fixed obfuscation issues
Maintenance
Set up CI with Azure Pipelines
Removed dependency on IObjectContextAdapter
Expose GetTextSearchExpressionForXXColumn helpers
LogVerbose tweaks
WIP RavenDB implementation
WIP VidyanoCultureContext
Moved culture related queries from VidyanoDbContext
WIP settings
First run db initialization efcore
WIP interface DTO
Moved extra custom queries
Small bugfixes
Moved logic to VidyanoModelContext
Unix timezone mapping
Removed Advanced.SingleInstance, UpdateCacheFromDatabase
WIP added IProviderSpecificService
Timezone fix
Removed NativeOnly
Removed SemanticZoom
Renamed IXXProvider to IXXStore
Made repository projects default nullable
Removed obsolete Effort related code/files
WIP Sample NoDB project
WIP VidyanoDbContext cleanup
Fixed sample NoDB project
WIP IRepositorySettingStore
Removed Settings from VidyanoDbContext/NoDatabase
Breaking change Vidyano.Logs
RavenDB: Explicit id determiner
February 2020
New Features
Exception Handling
Tweaked exception handling for /Authenticate calls
Better error handling
Fixes
Handle failed loaded cache for WebControllerLogger
January 2020
New Features
Advanced Search
Tweaked Advanced Search Save/Load functionality
Better search capabilities
Fixes
Fixed issue when searching ref attr with missing breadcrumb columns
Fixed issue with AdvancedSearch ExportToExcel not working
Maintenance
Trim userName input for GetCredentialType
Updated copyright year to 2020
Note: 2020 was a major refactoring year with the complete overhaul of the repository provider system, introduction of RavenDB support, and migration to .NET 5.0. Many breaking changes were introduced to support provider abstraction.
Was this helpful?