Changelog 2015
December 2015
New Features
Geography Data Type
Added Geography data type
Added DbGeography support
Better spatial data handling
User Settings Customization
Added ability to show custom attributes on User Settings page
Default translations logic for "en" based languages
Advanced Hooks
Added CheckPasswordComplexity hook
Added ConstructUserSettings to simplify rules checking
DataType Enhancements
Added DataType.CanSort/CanListDistincts
Use deterministic GUIDs for POs/POAs
Fixes
Fixed issue with Export to excel being broken by Web2
Fixed binary file issues
Fixed issue with DbGeography failing on invalid input
Maintenance
.NET 4.6.1 detection
Updated NuGet dependencies
Renamed POA.ListDistincts to CanListDistincts
Web2: Added reorder for PO.Queries and PU.Items
Fixed issue with renaming groups
Reorder handles duplicate offsets
Performance call shows unknown for empty query IDs
Show more attributes of PO on PO query
Don't show repository is out of sync message when cache is read only
Added FlagsEnum filtering
Removed custom user right resource data type
Improved License handling on Web2
Pass original exception when getting distinct values
November 2015
New Features
Query Filters
Added ability to include filters from other users
Simplified DistinctValues to use 2 calls (matching and remaining)
Notifications
Added NotificationType.Warning for Vidyano.Core PCL
Fixes
Fixed issue when SqlException is thrown during ManagerImplementation.Initialize
Fixed issue when security.json contains renamed Group
Fixed issue with QueryFilter saving having user id in objectId
Maintenance
Give more useful error when the model.json has an invalid Query
Removed unneeded db call for remaining distinct values
Don't assume PageSize 0 for arrays as source
Added text search support for Enum
Use SqlAzureExecutionStrategy instead of custom Retry logic
Fixed initialize issue for new projects
Added OnBuildProgramUnits hook to customize PUs/PUIs
Include extra information when ReportService throws an exception
Only use logic from SqlAzureExecutionStrategy (skip transaction check)
Split DisableSort in CanSort/CanFilter/ListDistincts
Core: Added PersistentObjectAttributeAsDetail
October 2015
New Features
Advanced Hooks
Added Advanced hooks for exception message generation
Handles SQL error 547, 2601 and 2627
Includes SQL error for easy diagnostics
Added ability to use SQLXXXX messages for SQL errors
Added hook to customize new POAs
Effort Support
Added Effort code for in-memory testing
Use Persistent Effort connection for in-memory changes
Fixes
Fixed threading issue when updating enabledForType cache
Fixed issue with ExportToExcel failing on 0x00 characters
Fixed bulk edit on User
Fixed issue with synchronize adding 2 empty groups/tabs
Fixed NullReferenceException in Api calls when using tests
Maintenance
Web2: Show POA Column/ColumnSpan
Added helper method to handle OnReorder
Use targetContext for looking up constraint columns
Include better message when numeric filtering fails because of invalid DataType
Bug fixes for Vidyano 4.6
Fix column span when opening attribute in management
Expose GetLabel helper method
Expose POAWR information for Advanced CreatePersistentObjectAttribute hook
Hide stack trace information when automatically activating license
Added validation for uniqueness of Group/Tab Name
Made QueryColumn.Label settable
Added some extra checks to ensure translations work with string.Empty instead of null
Generate correct project even if NuGet package creation fails
Forgot to add system settings when first creating repository
Use InnerException for TargetInvocationException
Updated Builder to use Package Source
Disable Profiler completely if Vidyano.DisableProfiler is set
Removed unused IL emit code from Profiler
Throw ObjectDisposedException instead of NullReferenceException on VidyanoDbCommand
Remove offset column for web version 2
Add fake persistent object on reorder query action result
September 2015
New Features
Query Handling
Handle exclusions for query.AllSelected
Don't use meta refresh for initializing page
Fixes
Fixed issue when fixing datetimeoffset comparison
Fixed issue with AsDetail not respecting detail PO's IsReadOnly
Fixed issue with refresh query when you have multiple objects of the same type
Maintenance
Include application groups in security.json
Fixed issue with DataFilter not working on POA's DataType
Added accept hint when importing patches
Make sure we handle AddReference AllSelected as lookup
Allow reorder
Send DataTypeHints with lowercase keys
Always try default sorting if we couldn't sort on unmapped property
Moved CanReorder flag to correct Attributes query
Skip all tried sort options when sort goes wrong (unmapped property)
Fixed issue with changed TriggersRefresh not being remembered on round-trip
Allow changing of label on POA
Fall back to key for CouldNotDelete message if breadcrumb is empty
Added option to get EnvironmentVersion from Manager
Removed Obsolete properties from Manager
Correctly dispose mail clients that we create
August 2015
New Features
Authentication
Added WebController.GenerateAuthToken method
Improved object tampering detection in debug
Diagnostics
Include AppSettings in /Diagnostics
Show unhandled exception for diagnostics
Licensing
Log activations (manual/from code)
Inform when activation failed
Handle concurrency exception when saving license
Include License in model.json
Include Vidyano version when logging exceptions
Fixes
Fixed an issue where calling VerifyData in the license manager throws an ambiguous match exception
Fixed issue with Feedback
Fixed NRE in diagnostics
Fixed login page after logout
Maintenance
Added hook to overwrite display value for POAWR
Log simpler stack trace for activation
Updated CommonMark/Newtonsoft.Json/Microsoft.WindowsAzure.Storage packages
Always hide potential passwords/keys
Use different dbcontext for verbose log writer/reader
Make sure we pass correct context to vidyano PO actions
Always include attribute id in securitytoken
July 2015
New Features
Query Filters
Added watcher for App_Data *.json files
Prefer ./App_Data/ for non web environment
User Experience
Added ClientOperation to reload page after changing UserSetting's Language/Culture
Added ability to define Vidyano.DiagnosticsToken app setting for Diagnostics
Include client information when submitting Feedback
Data Types
Web: Added BigNumber to handle Int64/UInt64/Single/Double/Decimal
Fixes
Fixed issue with synchronize adding reference attributes with visibility Never
Fixed issue with groups being lazy loaded not being locked
Fixed issue with missing TranslatedString/FlagsEnum in Attribute's Type
Fixed NRE issue in ParameterVisitor when static property was used
Fixed query filters issue
Maintenance
Added fuzzy match for decimal types
Give small DEV notification if menu option is wrong
Fixed column offset sorting to use attribute's offset when null
Keep IsReadOnly consistent on AsDetail attribute
Don't cache all related user's groups during CreateCache
Correctly track IsChanged on UserGroupsArgs
Changed UserSettings message
Improved service behavior when username and authtoken are null
Disable filtering on LogVerbose columns
Added PersistentObject.IsReferential to indicate Reference/Lookup data
Fixed validation issue on Feedback
June 2015
New Features
AsDetail Data Type
Moved AsDetail to own DataType instead of mis-using WithReference
Added migration for AsDetail attributes
Include ModelHash/SeederHash in model.json
Query Filters
Handle Query filters differently for Web2
Added some client messages
Fixes
Fixed issue when changing Session Persistent Object
Fixed issue with action name cache not being updated
Fixed InvalidCastException when label/description is null
Fixed issue with verbose logging not logging GetQuery QueryId
Fixed empty icons and unexisting query column mapping in Vidyano.Upgrade
Fixed schema synchronize issue if AsDetail data type doesn't exist yet
Fixed issue with bulkedit not working on user rights
Fixed issue when query.Columns is null in model.json
Fixed issue with query filters for Web2
Maintenance
Removed obsolete GroupsInfo (not used by clients)
Fixed tabs info caching issue
Added close client message
Handle breaking change introduced with new repository system
Use ContentDisposition.FileName in favor of ContentDisposition.Name for binary file uploads
Handle more breaking changes introduced with new repository system
Fixed issue with QueueQueryRefresh not doing anything for queries that had count included in parent
Added some default user rights for EnvironmentVersion 2
Hint client to refresh query on completed for AddReference action
Made sure that query's PO is correctly during ExecuteQuery
Don't save security.json from Builder if nothing changed
Added indication if changes can currently by made with the Builder
Fixed issue with missing q.PersistentObject.Queries/Attributes on reference attributes
Ignore ThreadAbort exceptions in WebControllerLogger
Actually fix saving of changed Session persistent object
Web: Consistent behavior with Web2
Added helper method for build-in ExecuteMethod operations
Test: Added Refresh handling logic
Improved error when loading invalid model.json
Also hide Column/ColumnSpan/PostRender for Web2 on New Attribute/Query
No need to wait when password is empty on request without authttoken
Added the Required business rule to some of the system attribute's attributes
Added Required as client message
Detect invalid data (possible merge conflict) when loading model.json
May 2015
New Features
Test Support
Added Test PO
Added most DataTypes
More data types
System Actions
Added System actions
Added round-trip support for json repository
Include more information in PO.Tabs (Id, Name, Layout)
Fixes
Fixed issue with running Vidyano outside of IIS (UnitTest)
Fixed templates order in model.json
Fixed reports not using random Id
Fixed data types not showing overridden templates
Fixed issue when creating new Data Type
Fixed issue with reading some Excel files
Fixed issue with not being able to add rights for Vidyano PO's
Maintenance
Fixed labels not using user's language
Make sure DisableBulkEdit is set before OnConstruct
Make sure BulkEdit gets all selected items
Test: Service: Fixed threading issue on translatedProperties
Web: Only refresh queries that are active, otherwise schedule for search
Also check for TableAttribute (Code First) to see if entity is mapped
Expose Query.DisableBulkEdit
Ignore queries without columns when removing attribute
Use different message when unmapped property is used for textsearch
Web: Fixed issues with OpenAsDialog
Service: Fixed issue with QueryResultItem value for TranslatedString
Web: Fixed issue with nvtooltip staying after navigation
Web: Fixed issue with Date.format not supporting YearMonthFormat
Service: Fixed compatibility issue with Windows 10 build 10130
Service: renamed Find extension method to FindByObjectId
Fixed issue with using relative path on non-IIS environment
Added ClearFilterFrom client message
Implemented vi-breadcrumb search mode
Added option to dump Verbose logs to SQL server
Create logging table on startup
Disable migrations
Added translatable label and description to Acs/Vidyano provider
Fixed object tampering on readonly reference attribute value of lookup PO
April 2015
New Features
JSON Repository
Load from json based repository
Consistent model.json saving
Added basic implementation of runtime patches
Disable more actions when read-only
Handle user/group creation in recording mode
Added patch recording for removing from group
Google Places
Added Google Places lookup
Upgrade Tool
Added Vidyano.Upgrade project
Fixed issue with viSearch
Fixed issue with labels having rule Required instead of NotEmpty
Fixes
Fixed labels
Fixed translated string handling
Fixed loading of admin rights
Fixed loading of management objects
Fixed system reference data missing keys
Fixed columns being fixed size
Fixed system labels issues
Fixed issue when parent was needed in Management
Fixed refresh translations
Fixed add/remove language
Fixed remove Schema/PO/POA/Query/Template
Fixed some NRE issues
Fixed PO Rights query
Fixed RepositorySynchronizer
Fixed issue when saving existing UserRight
Fixed builder
Fixed synchronize issue
Fixed issue with POAWR.LookupId not being set
Fixed issue with Administrators not being member of Users for new project
Fixed issue with running Vidyano outside of IIS (UnitTest)
Maintenance
Handle SaveNew/SaveExisting UserRight/Message
Removed non-EN translations from SystemModel
Web: Reverted change on ServiceAction.Icon
Removed old/obsolete TODOs
Remove user rights when user is removed
Show Group.Name/Tab.Name attributes
Handle OnSelectReference in ModelPOActions
Handle queries (SaveNew, Add, Remove, Delete)
Fixed issue with saving PO
Fixed NRE for ExportToExcel
Consistency update from upgrade process (JObject are sorted by key)
Added watcher for Icons
Partial builder implementation
Added cache for rights by user
Removed obsolete code from TranslatedStringEx
Create json data for empty repository
Added checks for RepositorySchemaSynchronizer
Fixed NRE with Charts
Removed unneeded usages of PO/Query.IsSystem
Increased BCrypt default complexity to 12
Cleaned up system messages
Removed unneeded TODO's
Handle system icons
Fixed issue when selecting PO on Query
Fixed more builder logic
Show paths for icons
Fixed issue with PUI.Icon
Fixed issue with creating new PUI
Use Query.Label when creating new PUI for Query
Show message if UserRights contain unknown User Ids
Made new User.Password optional
Fixed VS Builder
Fixed Synchronization issues
Allow .svg as icon
Fixed new project creation
Fixed some more builder issues
Enabled Code First on new project
Disabled Windows Store related code
Fixed issue with syncing repository
Updated Upgrade tool
Fixed issue with messages being case-sensitive
Fixed issue with missing user
Fixed issue when opening QueryColumn
Fixed issue in SystemModel
Write trace message when ReferenceResolver can't resolve reference
Use Model.GetEntity when possible
Added Manager.ExecuteAction
Fixed issue when synchronizing new DataType
Removed filterName argument
Fixed synchronization issue
Ensure SystemReferenceData always uses IsSystem
Fixed issue with refreshing translations
Fixed issue in google maps postRender call
Only re-order culture dictionaries on add
Show Message.IsSystem
Fixed issue with UserRight missing Vidyano schema
Added option to include groups for User/NullableUser data type
Fixed issue with column order being invalid
Handle Important UserRight
Made service-side JavaScript opt-in (CustomAction, BusinessRule, POAction)
Fixed Action saving
Fixed Help saving
Only flush .json files after all patches are applied and DB saved
Fixed issue with PO WebCode not being saved
Updated NuGet packages
Ensure cache dictionaries stay case-insensitive
Prefer empty group/tab for new attributes
Gzip embedded resources
Added PersistentObject.NewBreadcrumb
Updated html2canvas
March 2015
New Features
Google Places
Added Google Places lookup
VS2015 Support
VS2015 specific changes
Changed IsEmail rule to allow multiple entries
Fixes
Fixed issue when searching for today on DateTimeOffset
Fixed issue when searching decimal value on float/double
Fixed synchronizing issue when switching between POA/POAWR
Maintenance
.NET 4.5 related code clean-up (#if/async/...)
Skip obfuscation for POActions
No longer log assemblies in ExceptionService
Added Manager.GetSetting/Manager.SetSetting(string, object)
Removed some EditorBrowsableState.Never attributes
Web: Fixed issue for Save hook when calling completor without arguments
Web: Fixed issue with options not working correctly for MultiChart
Performance optimization when text search doesn't contain quotes
Also allow delay for Query RefreshOperation
Fixed issue when Vidyano user is renamed
Fixed issue with Query RefreshOperation triggering multiple times when searching manually
Auto-refresh logs every 5 minutes
Updated EntityFramework to 6.1.3
February 2015
New Features
Client Operations
Added ability to send additional operations that should be executed clientside
Added OpenOperation (opens specified PersistentObject as if it was launched from an action)
Added ExecuteMethod "showMessageBox" client operation
Windows Authentication
Added support for Windows Authentication
Use Request.LogonUserIdentity instead of WindowsIdentity.GetCurrent
Fixes
Fixed issue with ReadAsExcelSheet failing with empty cells
Fixed typo in initialize sql
Model SQL requires GO instead of go
Fixed synchronize issue with inherited types on EF6
Fixed issue with dialog PersistentObject and POAWR with CanAdd
Maintenance
Handle OnPreviewLoad in Manager.GetPersistentObject
Web: Improved handling of WindowsAuthentication
Add default ReadEdit/Vidyano.Import right for all users to allow RegisterImport
Don't open PO result from ExecuteAction if HasError
Handle HasError as FaultException on Load/BulkEdit
Require explicit implementation of OnBulkConstruct to enable Bulk Edit
NuGet: Updated Newtonsoft.Json to 6.0.8
Web: Correctly handle OpenOperation of ExecuteMethodOperation "navigate" when saving IsNew PO
Web: Fixed issue with ServiceGateway.toServiceString
Change Api handler to be async
Fixed issue when creating new project
Fixed merge issue
NuGet: Updated nuspec file for Newtonsoft.Json
Updated embedded CommonMark package
Consistent behavior when calling GetQuery WebAPI with non-guid id
Fixed issue with text search replacing text inside quoted parts
January 2015
New Features
Service Actions
Added ServiceAction.Confirmation
Small tweak to keep confirmation message IsClient
Manager Settings
Added Manager.SetSetting
Added hook to determine user groups from code
Added option to specify extra options for Import
Fixes
Fixed locking issue with AppDomain.OnAssemblyResolve
Fixed issue with filtering on DateTimeOffset
Fixed issue with LogRetention not correctly handling 0
Breaking change: Query menu items for which the user only has rights for 1 or more columns will now also show
Fixed small bulkedit issue
Fixed issue with Manager.GetPersistentObject being called outside Vidyano
Maintenance
Expose Manager.TimeZone
Removed obsolete/outdated WPF related code
Ensure Vidyano is initialized/updated when using Api calls
Updated CommonMark.NET (0.6.0)
Updated EntityFramework (6.1.2)
Updated Newtonsoft.Json (6.0.7)
Use Task.Run instead of Task.Factory.StartNew
Use ThreadPool.QueueUserWorkItem instead of Task.Factory.StartNew
Updated Optimizer to allow Related.Related.Related.Property
Also allow Task as return type for Api method
Tweaked AsDetail attribute, correctly handle OnRefresh on client side
Combine OnSave with saves for details (in transaction)
Web: Fixed issue with SelectReference not triggering OnRefresh on AsDetail
Allow String to Enum as DataType (fixes EF6 issue)
Web: Fixed issue with browseReference onCompleted not being called
Web: Changed place where ExecuteMethod clientOperations are being checked to Vidyano.clientOperations
Added handling of Required/NotEmpty rule on AsDetail attribute
Fixed bug with BinaryFile inputs not being cleaned up
Web: Use delay for Open clientOperation
Web: Added ability to specify delay for "showMessageBox"
Note: 2015 was a transformative year with 257 commits introducing the JSON-based repository system, moving away from database-only storage, adding Advanced hooks, implementing Google Places, adding support for VS2015, and major improvements to the Web2 client.
Was this helpful?