Changelog-Framework

Release Notes
MDRIVEN: CHANGELOG - FRAMEWORK
All the latest MDriven Fixes and Updates
ChangeLog - MDriven Framework

April 2024

  • Revision 15620 (Modified on 2024-04-30): Issue with comparison between numbers and string , this is generally allowed in sql and so it was allowed in OCL-PS, and so we made it allowed in OCL - but it turned out that it was not accepted for > and < in runtime -> Fixed We now remove context menu on Comboboxes in WPF in order to stay consistent with Turnkey - a function that was not maintained and not used CrossRef has ref to self for admin reasons - this is now removed from UsedBy menu to avoid confusion If a DisplayLoop issue occurs - stemming from OCL issue - we now show the Ocl/OclSymbolImplementations.cs
  • Revision 15618 (Modified on 2024-04-29): Major change to how variables and validations are edited in the ViewModelEditor - moved into tree to give better access and overview
  • Revision 15614 (Modified on 2024-04-26): Locks with SysMDrivenMiscSettingsSingleton solved
  • Revision 15612 (Modified on 2024-04-26): Toolbar mode in Turnkey app - this is work in progress - documented here : https://wiki.mdriven.net/index.php?title=Toolbarmode
  • Revision 15611 (Modified on 2024-04-26): Toolbar mode in Turnkey app - this is work in progress - documented here : https://wiki.mdriven.net/index.php?title=Toolbarmode
  • Revision 15609 (Modified on 2024-04-25): Issue with Turnkey, Modal, DesignedButton with ExecuteFrameworkRuntimeActionRT.DoModalOk did always end up with enable false. Now it takes the enable expression of the designed action
  • Revision 15605 (Modified on 2024-04-25): Blazor work in progress
  • Revision 15598 (Modified on 2024-04-23): Codegen/Checksum issue. Statemachines where not fully included. Fixed.
  • Revision 15596 (Modified on 2024-04-23): Handles - avoid multiple DisplayQueue registrations ViewModelValidations issue. In WPF only the control having a change got validation update - even if data changed for multiple columns. Validations consolidated into the ValidationsHandle and reducing the need for multiple re-evaluations.
  • Revision 15589 (Modified on 2024-04-19): SysAsyncTicket Mystery solved - if a situation arise where the newly created sysasyncticket is saved - but the (also new) object it points to is not included in the same save context - we woould end up with SysAsyncTickets with null in their rootid. We now include the non included new object - and force it to get a persistent id in pass1 , and update the sysasyncticket.rootid in pass2
  • Revision 15588 (Modified on 2024-04-19): Null checks
  • Revision 15584 (Modified on 2024-04-18): Checksum issues - cannot use all TV's and must include derivation OCL
  • Revision 15583 (Modified on 2024-04-18): Checksum issue with Methods; skipping types since it proved to hard to be consistent with collection, nullability,enums,modeltypes,systemtypes in permutations
  • Revision 15582 (Modified on 2024-04-18): Checksum issue with Enum types - they will either be DynamicStringEnum or real codegen type - will put ENUM for all
  • Revision 15581 (Modified on 2024-04-18): Checksum issue with Enum types - they will either be DynamicStringEnum or real codegen type - will put ENUM for all
  • Revision 15580 (Modified on 2024-04-18): Method Checksum issues
  • Revision 15578 (Modified on 2024-04-18): Method checksum , types sometimes included namespace. fixed
  • Revision 15577 (Modified on 2024-04-18): Null check in turnkey type check
  • Revision 15576 (Modified on 2024-04-18): Checksum for methods was off - making the codegen based on checksum a bit sketchy - fixed
  • Revision 15565 (Modified on 2024-04-11): Problem with hardcoded backslash for unix - Path.DirectorySeparatorChar
  • Revision 15564 (Modified on 2024-04-11): WPF issue of dragging from debugger to app had stopped working. Turned out to be a Yearlong issue that I now cleaned up by removing unnecessary parameters
  • Revision 15562 (Modified on 2024-04-10): ChecksumAttribute attribute added to eco.Interfaces - this is to speed up Codegen with checksum written to code checks Better CodeGenGoverningInfo that now can find codegen diffs regardless if you or someone else forgot to codgen
  • Revision 15561 (Modified on 2024-04-10): Fix for errors introduced in rev 15499.
  • Revision 15560 (Modified on 2024-04-10): Better comment
  • Revision 15543 (Modified on 2024-04-03): Still issues with download of images with GetVMImageUrl when app is under subfolder. Fixed now I hope
  • Revision 15541 (Modified on 2024-04-03): Problem when executing ViewModelAction connected to Button: The turnkey client sends the ViewModelClassName where the Button is placed - but there is no limitation to not place the viewmodel action on any level, and the button on any other level The server first looks in the send ViewModelClass, but now looks in other ViewModelClasses if not found before giving up
  • Revision 15540 (Modified on 2024-04-03): Updating the MySQL driver to 8.3.0 due to reported linux issues
  • Revision 15539 (Modified on 2024-04-03): Issue that if operator returned state attribute - the state attribute seemed to be editable in UI due to StateAttributes not being marked readonly at correct level
  • Revision 15536 (Modified on 2024-04-03): StartUpView constant

March 2024

  • Revision 15530 (Modified on 2024-03-28): null checks
  • Revision 15525 (Modified on 2024-03-27): ReadOnlyMode advanced: when an action that brings up a modal in itself does not change persistent data it would be enabled during ReadOnlyMode - but if the ExpressionAfterModelOK will change persistent data one could argue that the bringing-up of the modal is in vain - since the user will not be able to say ok. ReadOnlyMode now tries to deduce if ExpressionAfterModelOK effects persistent data and if so the bringing up action will also be disabled during readonlymode
  • Revision 15520 (Modified on 2024-03-26): Changing "Excel clip to M1" to "Text clip to M1"
  • Revision 15519 (Modified on 2024-03-26): Now CreateTuple allows for values of parts to be given in array Updates to Debugger "Excel clip to M1" now can take multiple columns and will create tuple, also allows copy from from SQLServer-manager or any text source
  • Revision 15518 (Modified on 2024-03-25): in angular binding you cannot have stringformat - and we applied it and thus broke the binding
  • Revision 15514 (Modified on 2024-03-24): Fix of previous check-in: Changed new feature of min-height/width so that setting the ViewModel's column width or row height of <= 1 signals that no min-height/width style tag should be generated.
  • Revision 15513 (Modified on 2024-03-24): Changed new feature of min-height/width so that col or row -width of 0 signals that no min-height/width should be set.
  • Revision 15511 (Modified on 2024-03-22): Fixed bug that suppressing incorrect unzipping CRC errors left unzipped files open. Prevented local core servers from running.
  • Revision 15504 (Modified on 2024-03-22): Work in progress AutoBlazor
  • Revision 15500 (Modified on 2024-03-21): Important Placingcontainer min-height/min-width change: ViewModelColumn column Span and Row span now is shown even when column is in Placingcontainer If the PC Min-size is NOT set we will use the corresponding column/row-span * viewmodel.ColumWidth/RowHeight and use this as the min-size in the direction (width when PC is row, height when PC is column) Reasons: #1 column span did have effect in Turnkey already (grids max height was controlled by this), #2 span > 1 on textfields also turned textfields into multiline - it was hard to control this AFTER you turned the View to PC #3 The min-size is very pixel focused and using the column/row-span * viewmodel.ColumWidth/RowHeight will quantify the used min-size values in a better way Remaining issues: In WPF even textfields, combos, datepickers etc adhere to min-size, but in web the min-size is controlling the controls outer div - but css does not resize the native control the way one would expect
  • Revision 15499 (Modified on 2024-03-20): _Label subcolumn was not implemented for buttons in grids - fixed
  • Revision 15492 (Modified on 2024-03-17): Webassembly work in progress
  • Revision 15490 (Modified on 2024-03-14): Issue with ReadOnlyMode - ReverseDerived where reported as non persistent and thus made writable - this is now fixed and also the TV WillEffectPersistedDataOverrideValue is checked for Reversederived
  • Revision 15489 (Modified on 2024-03-13): New settings in MDrivenServerOverride ExternalAssetsTK helps with EXT_component dev Check that we dont init ReadOnlyMode while in sync
  • Revision 15486 (Modified on 2024-03-11): Adding IProperty TryGetName(string name) to IPropertyCollection to make checking if property exists easier. Extending turnkey SysOpenAI support : adding Temperature so that it can be controlled via model
  • Revision 15485 (Modified on 2024-03-08): Better focusing of correct thing when clicking error in Model-errors, specially when you have conversion errors that makes further eval impossible
  • Revision 15481 (Modified on 2024-03-08): HideOnDisable introduced on AbstractAction - this will be set automatically on trigger actions when added from statediagram - but is now also available on all actions When abstract action has error and shows in ViewModel error list - it now opens action editor when double clicked When error check has an error on a State it now opens the correct state diagram on click
  • Revision 15479 (Modified on 2024-03-08): Improved error message if there is an exception in class method
  • Revision 15478 (Modified on 2024-03-07): Changed so that virtual path in .net core return empty string, making URLs relative and using basepath in web page
  • Revision 15475 (Modified on 2024-03-06): Improving table rows selection.
  • Revision 15472 (Modified on 2024-03-05): REVERTED non-working feature: Complex issue with vSelected in Turnkey - when you have not checked the SelectedBox - you still want the vCurrent to be part of the vSelected - but then you want it removed from vSelected if the only reason for being in vSelected was that it was vCurrent
  • Revision 15471 (Modified on 2024-03-05): Model upload rewritten to become async to avoid UI lock for large models
  • Revision 15467 (Modified on 2024-03-04): null check, adding Nesting.RendersAsList:bool method
  • Revision 15464 (Modified on 2024-03-03): Fixed bug: External login provider name change caused user creation failure. Two different ways to look up external login records in database, made login middleware fail.
  • Revision 15463 (Modified on 2024-03-01): Complex issue with vSelected in Turnkey - when you have not checked the SelectedBox - you still want the vCurrent to be part of the vSelected - but then you want it removed from vSelected if the only reason for being in vSelected was that it was vCurrent
  • Revision 15461 (Modified on 2024-03-01): To increase the rename-ease and copy-easy of view models we now suggest you use the new vCurrent_Root variable instead of vCurrent_<ViewModelName> This will make a copied/renamed ViewModel stay correct without any changes

February 2024

  • Revision 15456 (Modified on 2024-02-29): Better error message on failed report
  • Revision 15448 (Modified on 2024-02-27): OclEditor did not correctly provide help on selfVM members due to confusion with ordinary simple types
  • Revision 15446 (Modified on 2024-02-27): Inconsistency in linkobjects: when one inner link was null we used to throw and fail on assert - but we should treat it as any normal inconsistency that can be discovered and cleaned by MDrivenServer
  • Revision 15444 (Modified on 2024-02-26): Fixed problem with deep direct links lacking full redirection URL. Added URL encoding to redirect URL.
  • Revision 15442 (Modified on 2024-02-26): selfVM variable lost in debugger after reload model; Fixed issue MDrivenServer/Admin/Data validation now creates correct EAL scripts for fixing key issues with ocl debugger - so that history db integrity is maintained
  • Revision 15441 (Modified on 2024-02-26): Auto-Inconsistency-Cleaning, Extending Cache mechanism: Dealing with data inconsistencies that arise when 2 systems act simultaneously - one system linking A-B together (embedded link in B) and other system not yet knowing of B deletes A, first system saves without knowing about deletion of A 1. This is discovered when third system reads the B that now links to an nu-existing A, we ghost create an empty A but add it to the Ghost-list. 2. When this third system does a db-update for any reason we also check the Ghostlist and if it holds Ghost objects these are unlinked 3. The effect is that inconsistencies found are auto cleaned when other save operations occur - This strategy is not perfect (since inconsistencies may happen) but good since inconsistencies will eventually get cleaned. There is no active cleaning - but an active cleaning service will be added to MDrivenServer. - The alternative ; to trust referential integrity abilities of DB-brand is complex due to issues with ordering of updates and differences between brands, and will make evolve scripts more complex When load discovered foreign keys that does not have an object it is marked as ExistenceState Deleted, and added to this list On next save (if it happens) we can unlink this from everywhere void RememberGhostFKCreatedUntilNextSave(Locator locator); Used internally in Update - to unlink ghosts so that we get self cleaning of ghost keys List<Locator> GetAllGhostFKCreatedAndClearList();
  • Revision 15440 (Modified on 2024-02-26): Better auto switch to errortab and resulttab in debugger
  • Revision 15439 (Modified on 2024-02-23): Clickable links for operators in the debugger list of available operators
  • Revision 15438 (Modified on 2024-02-21): Improved OCL feedback on things that will never work like 'hello'>=1 (string cannot be compared with number) and '1'.strToInt>DateTime.Now (number cannot be compared with datetime) Better error message when collect has zero arguments
  • Revision 15437 (Modified on 2024-02-21): LeftMenuActions , for Grids in Web , only show if there is a selected object in the grid
  • Revision 15436 (Modified on 2024-02-21): In WPF when a Popup is shown , and that popup executes an AreYouSure question prior to action - the click in the areyousure could initiate popupclose so that vCurrent vars where destroyed prior to action execution - fixed
  • Revision 15435 (Modified on 2024-02-20): Fix typo in styles for InPlacePopup. Add additional CSS class to popup based on the position.
  • Revision 15430 (Modified on 2024-02-18): Several weaknesses when reverse deriving and working with MDrivenServer - that we did not log mapping issues correctly. Fixed/Improved. Several issues with MVC UI and handling of composite keys fixed Improved information from WepAPI PersistenceMapper failed calls in .netcore
  • Revision 15429 (Modified on 2024-02-17): Bad cleaning in GlobalActionAndAccessGroupRuntimeService knocked out MainMenu evaluation of accessgroups after reuse of ecospace - made GlobalMenu sometimes loose actions, sometimes showing too many actions - Fixed!
  • Revision 15427 (Modified on 2024-02-16): AccessGroups did not init fast enough on wpf
  • Revision 15426 (Modified on 2024-02-16): null check on action
  • Revision 15425 (Modified on 2024-02-16): Old bugg hid important info in exceptions from ocl - Fixed issue When decimal division by 0 we get DivideByZeroException - but ocl should not break - it should continue - for example if divide by 0 on a double we get double.positiveinfinity. We are now changing to give decimal.MaxValue (very big number) on division by zero
  • Revision 15424 (Modified on 2024-02-15): More matching types when reversing postgresql Better matching of SQLServerTypes
  • Revision 15423 (Modified on 2024-02-15): Before the evolve detected switch of attribute PMapper as reason for drop of column - I am now removing that - its common to change a pmapper on a attribute - specially in reversed scenarios StringAsChar and StringAsVarChar now converts non string types to strings to help with reversing of odd things in dbs Int32 and Int16 pmappers are extended to tolerate Int16 vs Int32 to help with crappy reversed databases
  • Revision 15421 (Modified on 2024-02-15): Unfortunate change some days ago made TechnicalViewmodels rely on DisplayQueue for update - this lead to ServerSide jobs not seeing the data Probably more issues with clone etc... Fixed
  • Revision 15418 (Modified on 2024-02-14): TableColumnsExcludeNames was null and failed table renderings
  • Revision 15417 (Modified on 2024-02-14): Null check for TaggedValues
  • Revision 15416 (Modified on 2024-02-14): RenderSettings.TableColumnsExcludeNames crashes MDrivenServer - fixed
  • Revision 15414 (Modified on 2024-02-14): Add check for RuntimeName for new TableColumnsExcludeNames setting
  • Revision 15413 (Modified on 2024-02-14): Add check for RuntimeName for new TableColumnsExcludeNames setting
  • Revision 15412 (Modified on 2024-02-13): Add TableColumnsExcludeNames setting, refactoring of table rendering
  • Revision 15409 (Modified on 2024-02-13): Postegresql updates
  • Revision 15408 (Modified on 2024-02-13): Removing tooltip for context action button in advanced tables.
  • Revision 15407 (Modified on 2024-02-13): Issues with ReadOnlyMode and AutoForm
  • Revision 15406 (Modified on 2024-02-13): Fixing issue with context menu button in advanced tables.
  • Revision 15404 (Modified on 2024-02-13): Adding support of width changes for multiselect column in advanced tables. Adding flexible sizing for checkboxes.
  • Revision 15402 (Modified on 2024-02-11): Added missing help texts on operators
  • Revision 15401 (Modified on 2024-02-11): Adding a tab to OCLDebugger that lists all operators seen by OCL. Action and OCLPS languages
  • Revision 15400 (Modified on 2024-02-09): Bug in RuntimeDefaultOnViews and null checks
  • Revision 15398 (Modified on 2024-02-09): Readonly issue with members fixed, readonly is off if selfVM.IsDirty
  • Revision 15396 (Modified on 2024-02-09): IMDrivenMiscSettings service added, covered by optional model class SysMDrivenMiscSettingsSingleton as described here https://wiki.mdriven.net/index.php?title=SysMDrivenMiscSettingsSingleton ViewModelHelper.CreateFromViewModelWithExtendedUIFunctions added - this differs from existing CreateFromViewModel overloads in the way that it checks for RuntimeDefaultOnViews AccessGroup, and the GlobalReadOnlyMode https://wiki.mdriven.net/Per_viewmodel_ReadOnly_mode
  • Revision 15394 (Modified on 2024-02-08): Fixed bug that Windows authentication was unable to find existing users if the username contained backslash and an escape character code, for example \n
  • Revision 15393 (Modified on 2024-02-08): Adding the frameworkaction ReadOnlyModeToogle Adding style for WPF ReadOnlyMode button ReadOnlyModeToogleButton Adding button for ReadOnlyMode in WPF tab Adding button for ReadOnlyMode in Turnkey
  • Revision 15392 (Modified on 2024-02-08): The ReadOnlyMode - if used - will be entered Automatically on new View/root combination, and re-entered on Save or Cancel Long standing issue with LabelOnTop when LabelSpan took effectiveXPos to negative (EffectiveXPos=XPos-PresentationSpan) is now handled the same way in WPF and Web, both changed slightly
  • Revision 15391 (Modified on 2024-02-07): New functionality: ReadOnly mode per view as described here: https://wiki.mdriven.net/index.php?title=Per_viewmodel_ReadOnly_mode
  • Revision 15390 (Modified on 2024-02-07): NavigateUrl issue
  • Revision 15389 (Modified on 2024-02-06): Work with AccessGroup RuntimeDefaultOnViews
  • Revision 15387 (Modified on 2024-02-06): Changes to how ClassActions behave regarding the ViewEnable accessgroup expression New tagged value added WillEffectPersistedDataOverrideValue that allow for override of the automatic deduction connected with ViewEnableExpression Issue with use of stacked AccessGroups where they all counted as true if no explicit expression was set - and this gave wrong result since one true is enough: Fixed
  • Revision 15386 (Modified on 2024-02-05): Fixes for reverse derive of dbs that make use of namespace names (other than dbo) - like AdventureWorks
  • Revision 15384 (Modified on 2024-02-04): Fixes for reverse derive of dbs that make use of namespace names (other than dbo) - like AdventureWorks