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?