Changelog 2014
December 2014
New Features
Unit Testing
Added Vidyano unit tests
Renamed Service to Client for better clarity
Translation Export/Import
Added Export/Import functionality for translations
Allows easier localization management
Uses DataExport icon
Fixes
Fixed issue with StackedAreaChart
Fixed issue with BinaryFile on OpenAsDialog
Ignore NullReferenceException on System.Web's AssociateWithCurrentThread
Maintenance
Made OnImport methods public
Allow OK/Notice/Warning notifications on OpenAsDialog Save (shows on query)
Allow RegisterStream with null as key
November 2014
New Features
Dynamics System
Full dynamic schema implementation released
Show in management (Advanced -> Dynamics)
Allow New/Delete from management
Show Collections/Security queries on DynamicSchema
Allow configuring of Security on DynamicSchema
Added default PersistentObject actions class for Dynamics (DefaultPersistentObjectActions`1)
Diagnostics
Added comprehensive diagnostics functionality
Better insight into system behavior
OpenAsDialog State
Added StateBehavior OpenAsDialog
Web: Added PersistentObject.openAsDialog support
Better dialog management
Fixes
Fixed issue with OpenAsDialog and ComboBox
Fixed issue with optimize select
Fixed issues with Session setting
Fixed issues with Impersonate when translation failed
Fixed issue with changes being made to User using Management
Fixed issue with tooltips on dialogs leaving invisible DOM elements behind
Fixed issue with SelectReferenceDialog modifying all open jQuery dialogs
Fixed caching issue after creating new dynamic schema
Fixed issue with EF6 handling transactions differently
Maintenance
Changed Export to Excel to ignore trimming on text columns
Include max users information on License PO
Performance fix when saving UserSettings
Show Impersonate inline on Users
Added LastLogins/NewUsers chart on Users
Allow delete property on dynamic collections from code
Added createIfNotExists to GetOrCreateSchema method on public interface
Allow custom dynamic queries
Added favicon
Added Vidyano repository unique constraints
Changed NotEmpty rule to check current language for TranslatedString
Web: Include inline selectedItems for execute hook
Web: Fixed styling issue with input[type=password]
October 2014
New Features
Dynamic Schemas
Complete Dynamic Schema implementation
DynamicCollection/DynamicCollectionProperty Persistent Objects
Dynamic schema administration groups ([Schema]_Admin)
Data security to Dynamics
Validation logic for dynamic entities
Auditing and soft delete support
Data Types
Added User/NullableUser data types
Added CommonMark data type support
Added DataTypeBuilder
Advanced Hooks
Allow custom queries on POActions
Allow open generic (TEntity) POActions
Fixes
Fixed exception when dynamic CreatedBy attributes don't exist
Fixed issue where a dynamic schema could not be deleted
Fixed issue with WebControllerLogger invoking before SchemaSynchronizer
Fixed issue with duplicate group names
Fixed translated string issue on messages
Fixed issue with EF6 already optimizing joins
Fixed Chrome for Android scrolling issue on QueryGrid
Fixed viSearch issue when using double condition on entity
Fixed DateTimeOffset issue
Fixed issue with EF6
Fixed issue with using projected EF types
Maintenance
Changed OptimizeSelect to opt-out
Added filter and sorting client messages for Vidyano Web2
Changed Settings to show difference between Vidyano and custom settings
Ensure valid DynamicCollection/Property names
Don't add client routes for dynamic persistent objects
Added transaction support over DynamicCollection/Property deletes
Don't filter auditing and soft delete data for schema_Admin users
Moved auditing and soft delete data to separate tab/groups
Only expose correct attributes for PO/POA based on dynamic
Cache Schema.IsDynamic
Ensure correct TargetContext for ExecuteQuery
Expose various StringEx methods
Updated NuGet packages
Expose userCulture/userLanguage
Changed select optimizer to opt-in (Vidyano.EnableOptimizeSelect)
Log actual GetObjects (SQL + materialize)
Handle double conditions on viSearch
Ignore unsaved changes if po has no Save/EndEdit action
Show notification for unsaved changes on CancelEdit/CancelSave
Added Optimize Select feature
Expose some helper methods for handling Sort
Allow Key attribute on primary key properties
Force v5 to use .NET 4.5
Improved text search on bool, numeric, and KeyValueList
Show expires info on License PO
Hide trial notification after activation
Added option to request trial key
Added api methods (available from /api/methodName)
Added required for Remaining- and MatchingDistincts attribute
Web: changed confirmation for unsaved changes on CancelSave/CancelEdit to opt-in
Web: consistent behavior for PU's and openFirst
Web: tweaked position of labels and input
September 2014
New Features
Environment Version
Added EnvironmentVersion support
Better version management
TranslatedString Enhancements
Changed TranslatedString behavior
Added NotificationType.Warning
Allow Image to be changed to BinaryFile
Fixes
Fixed issue with columnCount not working anymore on Tabs
Fixed issue with Session PO showing json label on Settings
Fixed issue with PO.Save not restoring global flag
Fixed BulkEdit issue on system PO's with TranslatedString
Maintenance
Don't add query item count for global search in web v2
Added ability to use original value in QueryExecuted's QueryResultItemValues
Updated NuGet packages
Consistent NuGet packages
Fixed edmx warning
TypeScript definitions update
Tweaked VidyanoDbCache to use locking instead of ConcurrentDictionary
Make sure SelectInPlace uses the DisplayAttribute for sorting
August 2014
New Features
GroupingInfo
Added GroupingInfo support
Better query result grouping
Fixes
Fixed merge issue
Fixed issue when Sort changed from IQueryable to IEnumerable
Maintenance
Added readonly/disabled QueryResultItem type hint
Updated WebAPI to 5.2
Updated OData to 5.6.2
Updated JSON to 6.0.4
Updated WindowsAzure.Storage to version 4.2
July 2014
New Features
Word Compatibility
Customize Word compatibility
Better document generation
User Management
Expose User.UpdateLastLoginDate
Added ability to check if group exists
Fixes
Fixed typo in NullableBoolean template
Fixed issue with GetQuery failing if system query with same name exists
Fixed boolean in attribute as detail
Fixed AdvancedSearch issue
Fixed issue with TriggersRefresh
Fixed issue with Word template
Fixed issue with sorting on Dynamic
Fixed QueryGrid sometimes not showing bottom row
Fixed Flags enum box with empty value
Fixed KeyValueList issue
Maintenance
Updated Core packages
Ignore X-Frame-Options header for ExecuteAction/GetStream
Don't use verbose log for Performance call
Added IndexHtml to CustomWebController
Removed old WPF test project
June 2014
New Features
Performance Data
Expose Performance data
Better performance monitoring
Charts Enhancements
Allow LineChart grouped on DateTime and string
Better chart flexibility
Fixes
Fixed focus issue on sign in page
Fixed issue with DisableSort not being checked when looking for default SortOptions
Fixed issue with cloned attributes without data type
Fixed null check in showNotification
Fixed issue with CancelEdit only working once for StayInEdit
Fixed issue with eg Object tampering being thrown during ExecuteAction
Fixed issue when synchronize creating duplicate PO's
Fixed issue when Logging exception before initializing logic is executed
Fixed NRE for textSearch on virtual property
Fixed issue with missing result hook for PO
Fixed issue with accent colors
Maintenance
Bye bye WPF - removed WPF support
Improved handling of DataTypes on POA
Fixed tests
Updated libraries
Updated WindowsAzure.Storage to version 4.0.1
Updated EntityFramework to version 6.1.1
Removed some obsolete code
Don't show ACS exception information to end user
Make sure cache is updated when using Manager.CreateForUser
Added ellapsed milliseconds to verbose logging
Correctly handle added/removed attributes during refreshFromResult
Added count to spinner to prevent premature spinner removals
Call onError when onCompleted throws an exception in ExecuteAction
Added HasPersistentObject/HasQuery methods IBuilder
Show client error if refreshFromResult is called with wrong PO
Added ObjectTamperingDetection helper
Expose Parent on QueryExecutedArgs
Show messages with invalid format
Allow data filter/text search with non-existing properties
Changed QueryResultItemValue.displayValue to be both function and string
Changed luminance to +25% for light accent color
Fixed typo in message
Ignore columns that can't be filtered
Updated crawler handler with more image types
Changed behavior when getPersistentObject returns a notification and notificationType is "Error"
May 2014
New Features
Advanced Search
First implementation for advanced search
Better search capabilities
Word V2 Templates
Added Word v2 templates
Improved document generation
MessageBuilder
Added MessageBuilder
Added CustomActionBuilder
Fixes
Fixed issue with w15 databindings not being checked
Fixed issue with ACS not showing errors
Fixed issue with PO staying in isNew after save
Fixed memory leak in resize
Fixed Word issue
Fixed repeating sections issue in Word template
Fixed issue with user rights being added twice
Maintenance
Correctly remove all content blocks
Make sure all document parts are checking for data bindings
Allow MultiLine translated string
Added option to strip unused xml from custom xml part
Added Base64 rule on ACS symmetric key
Removed ClientEnvironment.Desktop
Removed WPF templates/icons
Fixed missing query right on Vidyano.SearchObject
Use TextSearch for AdvancedSearch
Added extra hooks for GetDistinctValues
Made extra hooks visible
Added Initialize hook on any PersistentObjectActions implementation
Only call Initialize after cache is loaded
Added Retry button to Error page
Cleanup references to query resultContainer and charsContainer (leakage)
Added total time spent on SQL Statements to profiler view
April 2014
New Features
PersistentObjectAttributeAsDetail
Added PersistentObjectAttributeAsDetail definition
Better detail attribute handling
Fixes
Fixed issue with bulk edit on POA not showing extra attributes
Fixed issue with table storage throwing 404 when entry is already deleted
Fixed issue with reports
Fixed issue with log verbose not matching parent
Fixed issue with reference having displayattribute with dot not working for textsearch
Fixed submenu on IE touch
Fixed issue with filtering on reference attributes
Fixed typo in AuthenticatorService.GetFriendlyUserName method
Fixed issue with UserSession.Dispose when called
Maintenance
Updated NuGet packages
Updated Open XML SDK (2.5)
Code cleanup
Force https for azurewebsites.net/apphb.com if not set
Correctly generate urls for web scraper
Include ContentDisposition header for IO7 or higher
Call registerInput on detail attribute's parent
Use same logic for ACS when user can't log in (i.e. show HTML error)
Added hook on CustomWebController to override error page
March 2014
New Features
Security Enhancements
Added configurable password complexity system
Added image file upload validation
Added safer underscore values to templates
Remove server and asp.net headers
Added x-frame-options = sameorigin
Added x-content-type-options = nosniff
Verbose Logging
Complete verbose logging implementation
Added verbose logging query
Added verbose logging data object
Added basic text filtering on LogVerbose
Added reference searching on LogVerbose
Added retry for failed LogVerbose entries (max 10)
Use Log Retention settings for WebControllerLogger
Added WebControllerLogging to Windows Azure
Compress verbose logs
Vidyano Mobile Client
Added Vidyano JQuery Mobile Client
Added BackBone & Underscore support
Added page navigation parameters
Added Query Page
Added PersistentObject Page
Added flipswitch
Added attribute hooking
Added save button
Charts
Added MultiChart
Handle valueFormat option for all charts
Fixes
Fixed issue with 'Invalid user name or password' not showing
Fixed Poll call not working
Fixed issue with custom queries that return an array
Fixed query filter stay open
Fixed issue with virtual Messages/Settings showing in Management
Fixed issue with $.cookie
Maintenance
Always delay user/password check by 1-2s
Don't send profiler on exception
Don't log Poll calls
Fixed logout on cross-browser tabs
Don't leak UserName to Google Analytics
Use correct way of transforming web.config file
Fixed TypeScript issue when building Vidyano 4.5
Strip password from incoming data in GetApplication
Removed obsolete IE8 utf8 fix
Made CustomQueryArgs parameter optional on custom queries
Added method to update PO's attributes from ClrType
Never send unmapped properties to EF query
Fixed invalid NotMapped check
Updated to EF6.1
Tweaked locking behavior for cache updates
Sleep 4 hours instead of 1 minute for deleting old verbose logs
Added disabled as placeholder for VidyanoLogging
Give link to actual Log message when synchronizing
Force password complexity (CreateNewUser/ChangePassword/...)
Correctly call VidyanoDbCache instead of Manager.Current when possible
Updated NuGet.exe to 2.8
Added Vidyano.LoggingExcludedUserIds
Added Vidyano.LoggingExcludedVidyanoMethods
Added logging of Vidyano version
Don't log verbose for IsSystem
Don't show Log (Verbose) if not configured
Added assembly binding redirects
Fixed code mirror line separator
Added template for log verbose data
Hide empty attributes on Log Verbose
Hide empty columns on Logs verbose
Add -vi- class to content for full page queries
Changed LogsVerbose WebCode to CSS
February 2014
New Features
Charts System
Complete charts implementation
Added bar chart, line chart, treemap
Added NVD3 charts integration
Added StackedAreaChart
Added LineChart with focus
Added custom color scale and date/number formats
Charts as TypeScript
Server-side and client-side chart rendering
Chart selector and filters
Support for up to 20 values for bar/line charts
Added WithCumulativeValues on LineChart
Added grouping to LineChart (ByYear, ByMonth, ...)
DynamicEngine
Added DynamicEngine
Fixed DynamicEngine GetGlobalValue/SetGlobalValue issue
Fixes
Fixed sorting issue when using anonymous type
Fixed EF6 sorting issues
Fixed Jurassic issues
Fixed LineChart GroupBy on enumerable sources
Fixed index checking bug
Fixed reflection issue when calculating total
Fixed search box disappearing on navigation
Fixed chartSelector bug
Fixed LineChart when filtering
Fixed DataFilter issue on in-memory queries
Fixed issue with synchronize when using custom detail query
Fixed issue with calls to refresh distincts when adding or removing empty filter column
Fixed bug where chart selector is shown on full page layout while not in query mode
Fixed issue with having multiple attributes with column in single group
Fixed broken merge on POA Clone method
Fixed overflow hidden clipping chart tooltips
Fixed chart issues on EF6
Fixed chart label not being used on rendered chart
Fixed chart issues on EF6
Maintenance
Updated hashing to bcrypt(10)
Added parseJSON function
Added Sort hook
Copied Jurassic xml documentation
Added MultiString Web control
Show ExecuteQuery notifications on Query
Prevent EF6 merge issues
Allow customization of Total Item (GetTotalItem method)
Correctly verify the chartSelector container is still in reference to the current query
Added safety check to chartSelector
Pass along parent in ChartArgs
Fixed issue with wrong version of d3js
Only call OnChart when calling ExecuteQuery with Top is 0
Update charts client-side
Changed behavior when getting Vidyano objects from cache
Removed wl.basic from Microsoft Account OAuth
Handle DataTinker license differently (only DataTinker schema is checked)
Added overloads to get values for children on BarChart/LineChart
Added MultiString data type
Added extra operators to POA (to string[], to JObject, to JArray, from string[], from JToken)
Fixed issue with data filter not ordering on reference attributes
Fixed empty source on Query in some cases
Added Vidyano.Service.Charts using on new POActions
Added Poll method to WebController
Keep enumerables as enumerable when using Where/Select/SelectMany on Source
Show exception when sort failed for EnumerableQueryable
Improved setting of Total value when using TotalItemArgs
Fixed issue with ServiceGateway.fromServiceString not working for unsigned types
Moved Vidyano web classes to Vidyano module
Improved vidyano.d.ts
Updated Vidyano-4.0.d.ts
Updated NuGet dependencies
Added WindowsAzure.Storage nuget package
Fixed profiler issue
Consistent API for BarChart/LineChart
Added Select/SelectMany on Source
Handle elapsedMs on profiler as int
Added header to charts
Always order line chart on date
Moved charts to Charts namespace
Updated chart color palette
Added TypeScript libraries
Opened service side Charts
Show bar char x axis
Fixed bar chart labels
Handle null/empty as name
Changed bar to use color
Added client bar chart rendering
Added filters for bar chart values
Finalized bar chart (up to 5 values)
Added submenu to chart buttons
Fixed data filter stay open
Render client side query treemap
Fixed data filter for charts
January 2014
New Features
Query Enhancements
Added charts on Query
Added inherited rights on users/groups
Added optional Query argument for Find/GetEntity
Fixes
Fixed synchronize for poa's with name that is not identical with context property name
Fixed issue with get unknown message for specific language
Fixed Next & Previous icon alignments
Fixed profiler ellapsed milliseconds
Fixed issue with Query argument when Query is using another PO (DB View, ...)
Fixed datafilter for inherited user actions
Fixed NullableBoolean search not working
Fixed merge issue
Fixed NRE issues
Maintenance
Updated to WebApi 2.1 (5.1)
Added groupname on persistent object attribute clone
Auto-apply text search filter based on propertyType
Changed New behavior to hide attributes that don't have New right
Note: 2014 was a transformative year with 280 commits introducing the Dynamic Schemas system, comprehensive charts functionality, verbose logging, password complexity management, Vidyano Mobile Client, and the beginning of the transition away from WPF support.
Was this helpful?