Changelog-Framework
(Updating changelog)
(Updating changelog)
(162 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<message>Write the content here to display this box</message>
__NOTOC__
__NOTOC__
__HIDECREDIT__
<html>
<html>
<style>
<style>
Line 79: Line 81:
</html>
</html>
<div class="changelogs">
<div class="changelogs">
=== June 2024 ===
=== June 2025 ===
* '''Revision 15703''' (Modified on 2024-06-04): Introducing protected virtual IDbTransaction StartTransactionNoChecks() on AbstractIDatabaseImpl to facilitate ability to do your own StartTransaction - thus allowing Firebird specific options
* '''Revision 16737''' (Modified on 2025-06-18): x
* '''Revision 15700''' (Modified on 2024-06-04): Convert.ChangeType fails for string to Guid - will do safeval=TypeDescriptor.GetConverter(t).ConvertFromInvariantString(safeval as string); for all string values . This broke resolve of Posted data conversion to Guid at FI
* '''Revision 16736''' (Modified on 2025-06-18): Real life case where MDrivenServerSync-block was tagged with wrong ModelChecksum due to checksum from actual save block creation was not caught and kept - instead the checksum was retrieved again prior to insert of synkblock and at this point the evolve had added a new version. Freak occurrence blocked from happening again.
* '''Revision 15698''' (Modified on 2024-06-04): selfVM.Download - removing the FileType param Extending SysDocBatch pattern with method OnSysDocBatchViewClose Dropping Convert attributes from SysDoc pattern since it does not play with Zip function that use fixed attributes Bug in MDrivenServerAutoForm when converting nullable DateTime
* '''Revision 16735''' (Modified on 2025-06-17): When building ListViews - and having de-reference to single nesting (as will happen when mounting viewmodel) there is now support for IncludeHere tagged value that will NOT de-reference and put cursored controls out of listview as standard - instead IcnludeHere tag will bring in rendering into the current listview row; this makes it possible to have a list of mounted viewmodels (all the same definition though)
* '''Revision 15697''' (Modified on 2024-06-03): Introducing LibraOffice PDF/DocX/XLSX conversions support
* '''Revision 16732''' (Modified on 2025-06-16): When using ListViews the supported behavior has not allowed subnestings from row (worked only of subnesting was other listview) - for single links these where interpreted as "dereference/render-after" - but for MountedViewModel this made it impossible to have Mounts inside the ListViewRow , to better handle this the "IncludeHere" tag value can be set on the Mount-point-column or also on a SingleLink-reference; work in progress
* '''Revision 15696''' (Modified on 2024-06-03):  
* '''Revision 16731''' (Modified on 2025-06-16): Mistake in SearchLogic from last checkin made TotalCount get value of pagecount if special search (missing words+semicolon) was tested but not applied - fixed
* '''Revision 15695''' (Modified on 2024-06-03): Pulling apart IExternalLateBind implementation of Turnkey to better support pattern based methods from MDrivenServer
* '''Revision 16730''' (Modified on 2025-06-13): Better return of checksum, null checks after real life scenarios TraceLogTurnkey now catches first trace with TRACESTART and prune app with PRUNEAPP trace entries to better see dynamics of usage
* '''Revision 16727''' (Modified on 2025-06-12): Issue with ocleditor context finding when writing expressions - specially the case self.DeepClone(SomeType.ViewModels.SomeView) was not any good at any of the levels of the inner expression SomeType.ViewModels.SomeView
* '''Revision 16721''' (Modified on 2025-06-10): Now Seekers in turnkey will init their vSeekerResultCount to -1 , and this will be used to avoid showing "No results" prior to first search The special search for missing words (replacing space with wildcard) has been limited to strings under 200 in length to avoid undue db stress The special search for multi-search had issues with AutoForms/Template created seeker forms due to use of vSeekParamWildcard that included wildcard in value to allow for sqlite to not having a parser meltdown... Long story, but fixed. Seekers-paging-buttons in web did not show count if the count was 1, it does now
* '''Revision 16717''' (Modified on 2025-06-09): When parsing xml datablock we now fallback to check for Ansi-datetime on datetimes (before only binary) OCLDebugger has new button to Vibe demo data from a given diagram
* '''Revision 16716''' (Modified on 2025-06-09): Runtime updated to allow for default-opt-out of actions making it easier to maintain large model where some viewModels should be stable and not get new class actions as they are added - but rather wait for explicit opt-in. This is a per viewmodel choice named default-opt-out
* '''Revision 16704''' (Modified on 2025-06-01): Improved sorting on menus i web when mixing menus without group and those with group Continued work with Vibe-information


=== May 2024 ===
=== May 2025 ===
* '''Revision 15692''' (Modified on 2024-05-31): IOpenDocumentService has a new OnInitiateUserDownloadOfData - that is backing a new selfVM.Download operator - that will download any data
* '''Revision 16699''' (Modified on 2025-05-28): StylesInModel issue with button not gettings its icon covered by the componentlabel target - fixed
* '''Revision 15690''' (Modified on 2024-05-29): SysDocBatch work
* '''Revision 16693''' (Modified on 2025-05-27): selfVM.ExecuteAction used internal function that could fail if Nestings for searchexpressions were present - fixed. Vibe UI - LLM updated prompt and fed xml to reduce misunderstandings
* '''Revision 15689''' (Modified on 2024-05-29): Missed nuget
* '''Revision 16681''' (Modified on 2025-05-25): Detection of issue with missing PlacingContainer in single Nestings when Span has them - this issue break rendering a new error in error check has been added - and also a rescue operation to fix with one click
* '''Revision 15688''' (Modified on 2024-05-29): x
* '''Revision 16680''' (Modified on 2025-05-23): In C# Math.Round(-1.0/10000) gives negative zero that survives to ToString giving "-0.00". This is legit but annoying and deemed of low value so in MDriven (-1.0/10000).Round(2) will from now on return a positive zero
* '''Revision 15687''' (Modified on 2024-05-29): SysDocBatch pattern support - a way to print manage downloads and prints in batch New selfVM operators: IObject SysDocBatchEnsured(ViewModelReferenceType vmref); byte[] SysDocBatchZip(ViewModelReferenceType vmref);
* '''Revision 16678''' (Modified on 2025-05-21): Issue in ViewModelEditor with Mounted views - fixed
* '''Revision 15685''' (Modified on 2024-05-27): Easy access to GetDecodedAccessAndRefreshTokenOnClient for GraphAPISupport
* '''Revision 16676''' (Modified on 2025-05-21): Long limitation that Bag{1,2,3} did not really return a bag but instead a Set - combined with limitation that union filtered away duplicates gave this expression Bag{1,2,3}->union(Bag{1,2,3}) to return 1,2,3 instead of the expected 1,2,3,1,2,3 - fixed
* '''Revision 15684''' (Modified on 2024-05-23): SoapCall webRequest.AutomaticDecompression=DecompressionMethods.GZip | DecompressionMethods.Deflate
* '''Revision 16670''' (Modified on 2025-05-20): ActionRenderPosition has a new value:ButtonOnly, this is used when a leftside/toolbar action is opted out - but still used in one or more buttons This change fixes several old problems; specially the one that AreYouSureQuestions where not properly handled of action was outopted but used in button, and that optout level had importance for ViewModelContextAction
* '''Revision 15683''' (Modified on 2024-05-23): SoapCall did not correctly add the encoding header to xml sent
* '''Revision 16669''' (Modified on 2025-05-19): DynamicEnumString did not correctly implement Equals leading to combobox presentation halting
* '''Revision 15682''' (Modified on 2024-05-23): x
* '''Revision 16668''' (Modified on 2025-05-19): IgnoreContent of PlacingContainer implemented in WPF flexpanel
* '''Revision 15681''' (Modified on 2024-05-23): In AngularJS with Edit controls - StringFormat broke the databind - so we solved it by removing the StringFormat, but that caused problems and the stringformat for numbers was really missed. So we now render 2 editcontrols - both input elements - one with readonly databind that has stringformat, and one with 2 way databind without string format - and we use onfocus/onblur to make the right one show on edit
* '''Revision 16667''' (Modified on 2025-05-16): ElementHandle did not correctly create columns when switching types if new type was IEnumerationType - effected debugger output that showed last result type if the result type was IEnumerationType
* '''Revision 15680''' (Modified on 2024-05-23): Adding check for vSoapResult and vSoapError to make SoapCall debugging easier
* '''Revision 16666''' (Modified on 2025-05-16): Ocl_includes did not handle enum compare - fixed
* '''Revision 15679''' (Modified on 2024-05-22): Last row of CSSGrid rendering height autofit for tables only
* '''Revision 16663''' (Modified on 2025-05-14): --text-on-primary text on buttons was set to white - but several issues made it not reach the theme-default, the theme-default issues has been resolved and then text on button became white - this is now changed to black Width of tk-input-field--datepicker was reduced - for no apparent reason - now its treated as any other input StylesInModel was unable to reach and set the text of buttons - now fixed Turnkey runtime prepared for new PlacingContainer property that controls flexbasis called IgnoreContent
* '''Revision 15677''' (Modified on 2024-05-22): GraphAPISupport adding User and Groups access from AzureAD
* '''Revision 16659''' (Modified on 2025-05-13): BREAKING CHANGE: Assignment := goes from RHS-type to LHS-type (Left hand side decides type today and onwards). This WILL MOST LIKELY break a few expression. You fix them by typecasting. Read how and why here: https://learn.mdriven.net/index.php?title=Documentation:OCLOperators_:%3D
* '''Revision 15676''' (Modified on 2024-05-22): Last row of CSSGrid rendering height autofit
* '''Revision 16658''' (Modified on 2025-05-13): OclResultTypeDeduceMethod.TypeOfFirstParam was really 2 and OclResultTypeDeduceMethod.TypeOfSecondParam was really 3 - fixed this and also added OclResultTypeDeduceMethod.TypeOfThirdParam This gave problem when implict upgrading ints to double in a assign somedouble:=0 when it was enclosed in ->collect because the list was int and not of double
* '''Revision 15674''' (Modified on 2024-05-20): Issue with combobox picking enum value and initial value is first enum - a comparison with equality == failed - changed to Object.Equals instead to fix issue of initiating
* '''Revision 16655''' (Modified on 2025-05-13): ExecuteFrameworkRuntimeActionRT.ReadOnlyModeToogle is corrected to ExecuteFrameworkRuntimeActionRT.ReadOnlyModeToggle
* '''Revision 15673''' (Modified on 2024-05-19): Score calculation now seperates between PSExpression and ocl expressions
* '''Revision 16641''' (Modified on 2025-05-10): OclVariableConverter a TypeConverter needed for design and winforms design code gen has been moved from eco.handles.design to eco.handles - this is to de-confuse the winforms .net8 designhost (designtoolserver) and also de-confuse extension loaded types from project loaded types. This means that to get consistent behaviour (non missbehaving winforms editors) you need MDriven design time and MDriven nuget mdriven.handles no older than THIS version
* '''Revision 15671''' (Modified on 2024-05-17): Issue in AutoForm whan handling combos of Enums - when enum is badly initiated or null - handled Turn off autoform showing when clicking combos with enums
* '''Revision 16640''' (Modified on 2025-05-09): OclVariable as placeble component did not work with new required winforms net48<>net5 streaming - now works for net48
* '''Revision 15666''' (Modified on 2024-05-17): Now MDrivenServer stats per class and per associationEnd is shown in OCLEditor tree when listing classes and associationends
* '''Revision 16639''' (Modified on 2025-05-09): OclVariable as placeble component did not work with new required winforms net48<>net5 streaming - work in progress
* '''Revision 15665''' (Modified on 2024-05-17): Attribut Change of type did not give clear warning on evolve-skipping Issue with ColumnConsistencycheck fixed.
* '''Revision 16637''' (Modified on 2025-05-09): ReadOnlyMode when turned on globally also affected MVCAutoForms - and that made debug editing harder - we now let these forms ignore ReadOnlyMode
* '''Revision 15664''' (Modified on 2024-05-17): Extended new ColumnFieldConsistencyCheck; added check for: null in db not in model, null in model not in db, string length shorter in db than in model
* '''Revision 16636''' (Modified on 2025-05-08): ReadOnlyMode when turned on globally also affected MVCAutoForms - and that made debug editing harder - we now let these forms ignore ReadOnlyMode SERIOUS BUG: A month old bug regarding IdentityChangers (new objects has guid id, and saved get permanent id) - when on root webclients did not correctly update url to show new id, and whats client side viewmodels did not get all the needed IdChange messages to correctly upgrade id on objects held deeper in hierarchy than root. Fixed
* '''Revision 15662''' (Modified on 2024-05-16): New Function in MDrivenServer/Admin/ColumnFieldConsistncyCheck that loop through and compare db-type with model type - this is good to catch any unhandled "will not evolve" warnings
* '''Revision 16633''' (Modified on 2025-05-07): Update to vSysReadOnlyMode is NOT entered if the object IsNew
* '''Revision 15661''' (Modified on 2024-05-16): New Function in MDrivenServer/Admin/ColumnFieldConsistncyCheck that loop through and compare db-type with model type - this is good to catch any unhandled "will not evolve" warnings DatabaseSnapshot was not working in MDrivenServerCore - Fixed issue
* '''Revision 16630''' (Modified on 2025-05-07): Issue that Seek multiple times on same string sometimes could remove the selection made by AutoSelectFirstRow - fixed
* '''Revision 15656''' (Modified on 2024-05-15): --table-min-height-span variable added to adjust the minimum height of the table
* '''Revision 16626''' (Modified on 2025-05-06): Changes on all operations for GraphAPI access to deduce if it is "InvalidAuthenticationToken" and if so - refresh the token and execute the operation again
* '''Revision 15654''' (Modified on 2024-05-14): Row+ColumnVirtualization turned on for WPF DataGrids... Especially column seemed to slow everything to a halt almost if column count >70
* '''Revision 16625''' (Modified on 2025-05-06): AutoFirstSelectRow was glitchy if something was selected prior to new search
* '''Revision 15651''' (Modified on 2024-05-12): Doublets of constraints error messages shown due to non uniqueness check of objects - fixed
* '''Revision 15649''' (Modified on 2024-05-10): Changed so the a Framework hack for header on GET requests is not executed in .Net Core
* '''Revision 15648''' (Modified on 2024-05-10): DefaultEcoSPace /// Normally singletons are created/ensured if the typesystem.checksum has not been seen since start of process /// But for testing purposes one may want the Singletons to be ensured on each ecospace creation - then set this property to true public bool EnsureSingletonInstancesOnEachEcoSpace { get; set; }
* '''Revision 15646''' (Modified on 2024-05-09): Really mind boggling issue with PlacingContainers sub containers switching context due to singlelink nestings; this tripped QueryPlanner to check Visible and Style expression of PC with wrong context - fixed
* '''Revision 15637''' (Modified on 2024-05-07): Issue in TagExpander when having columns without types - null check
* '''Revision 15627''' (Modified on 2024-05-03): GlobalHideActionOnDisable added to SysMDrivenMiscSettings Render of Toolbar menu now skips MenuGroups that are empty
* '''Revision 15624''' (Modified on 2024-05-03): Toolbar actions and AlwaysShowActions issue
* '''Revision 15623''' (Modified on 2024-05-02): Issue with WillEffectPersistentData flag in class action that were proxyActions (ActAsExpression set)
* '''Revision 15621''' (Modified on 2024-05-02): WPF debugger - chose copy with or without headers


=== April 2024 ===
=== April 2025 ===
* '''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 16615''' (Modified on 2025-04-28):  
* '''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 16613''' (Modified on 2025-04-28): Issue in angularclient that ctrl keys did not fully do their after action due to roundtrip fillup Add variable-dialog now offers a As-collection checkbox instead of having all the types all the time
* '''Revision 15614''' (Modified on 2024-04-26): Locks with SysMDrivenMiscSettingsSingleton solved
* '''Revision 16612''' (Modified on 2025-04-28): Added the enable expression that gives false in the log, when the serverside action is not allowed to run.
* '''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 16608''' (Modified on 2025-04-26): Nuget package update: Azure.Core, Version=1.45 System.ClientModel, Version=1.2.1 System.Runtime.CompilerServices.Unsafe, Version=6.0.1.0 System.Threading.Tasks.Extensions, Version=4.2.1.0 System.Runtime, Version=4.3.1 System.Security.Cryptography.ProtectedData, Version=6.0.0
* '''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 16607''' (Modified on 2025-04-26): Major updates to advanced styling with LLM support and fast-track-CSS to help you shine
* '''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 16606''' (Modified on 2025-04-26): ExtentService - added 2 new methods: /// If the class is Singleton this fetch, possibly create the instance IObject Singleton(IClass c); /// If the class is Singleton this fetch, possibly create the instance T Singleton<T>() where T : class, IEcoObject;
* '''Revision 15605''' (Modified on 2024-04-25): Blazor work in progress
* '''Revision 16599''' (Modified on 2025-04-24): The Turnkey/Development?view= service was untested and failed in certain cases. Fixed
* '''Revision 15598''' (Modified on 2024-04-23): Codegen/Checksum issue. Statemachines where not fully included. Fixed.
* '''Revision 16598''' (Modified on 2025-04-24): Theme upload did not happen unless there was a style - 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 16591''' (Modified on 2025-04-23): ThemeStyling continued work
* '''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 16590''' (Modified on 2025-04-23): Issue in debugger when cloning ViewModel vars and one is a Tuple - Fixed issue Changes for Keyboard shortcuts for Save(ctrl+s) SaveAndLock(ctrl+enter) EditMode(ctrl+e) CancelAndLock(ESC) undo(ctrl+z) redo(ctrl+y). This is in angularjs and Blazor-client
* '''Revision 15588''' (Modified on 2024-04-19): Null checks
* '''Revision 16584''' (Modified on 2025-04-22): Recent fix for actions accidently broke evaluation if the action enable expression was empty - fixed
* '''Revision 15584''' (Modified on 2024-04-18): Checksum issues - cannot use all TV's and must include derivation OCL
* '''Revision 16583''' (Modified on 2025-04-21): New Tab in LiveEdit - advanced-styling, work in progress
* '''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 16579''' (Modified on 2025-04-17): Improved on hints when using things only valid in action in ocl in ocleditor errors
* '''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 16578''' (Modified on 2025-04-17): In OCL we now fill the EnumOrd to the ordinal number of the enumerated value (0,1,2) MyEnum.allinstances.EnumOrd And we allow comparison between Enum.value and integer (falls back EnumOrd )
* '''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 16576''' (Modified on 2025-04-16): Updates to enable MDriven VS2022 on ARM64 - this required .netFramework48 and late VS2022 (Version 17.13.6) Everything that WAS compiled with .netFramework472 has been raised to .netFramework48 (this does not concern things compiled with netStandard or netcore+ (net6,7,8)) THIS IS IMPORTANT: Update your VS2022, Update your MDriven Nugets, If you get build breaks check that YOUR THINGS TARGET at least .netFramework48 Saying again with other words: WE NOW LEAVE .netFramework472 and older behind forever - use .netFramework48 as the minimum.
* '''Revision 15580''' (Modified on 2024-04-18): Method Checksum issues
* '''Revision 16575''' (Modified on 2025-04-16): SysViewStateCookie included the vSysReadOnlyMode variable - this was unintentional and it is not included in new SysViewStateCookies
* '''Revision 15578''' (Modified on 2024-04-18): Method checksum , types sometimes included namespace. fixed
* '''Revision 16574''' (Modified on 2025-04-16): CacheInvalidation revisited and an assumption was proved wrong and rectified - old manifests were to big due to this oversight
* '''Revision 15577''' (Modified on 2024-04-18): Null check in turnkey type check
* '''Revision 16573''' (Modified on 2025-04-16): The selfVM.CanExecute ran into problem when evaluating a placed buttons enableexpression if the placed button was on subnesting and not pointing to an abstractaction (then it wrongfully used context of sublevel - but in these cases context is vmroot). Fixed
* '''Revision 15576''' (Modified on 2024-04-18): Checksum for methods was off - making the codegen based on checksum a bit sketchy - fixed
* '''Revision 16571''' (Modified on 2025-04-15): CommandTimeout option added to SQLImport and SQLExport functions in MDrivenServer
* '''Revision 15565''' (Modified on 2024-04-11): Problem with hardcoded backslash for unix - Path.DirectorySeparatorChar
* '''Revision 16570''' (Modified on 2025-04-15):  
* '''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 16568''' (Modified on 2025-04-11): OCLEditor has a new "Second pair of eyes" option that helps to spot issues with expression (LLM powered)
* '''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 16567''' (Modified on 2025-04-11): When listing native type values in combo box and trying to assign one by pick Turnkey ran into problems as soon as it was not an enumeration or a string, now behaves better for datetime,bool,int,double,decimal
* '''Revision 15561''' (Modified on 2024-04-10): Fix for errors introduced in rev 15499.
* '''Revision 16566''' (Modified on 2025-04-11): selfVM.LogEntry fixes
* '''Revision 15560''' (Modified on 2024-04-10): Better comment
* '''Revision 16565''' (Modified on 2025-04-11): Added Move column out of conflict position as one one the new Rescue operations
* '''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 16564''' (Modified on 2025-04-11): selfVM.LogEntry('say something') will output a row in MDrivenServer-log and Turnkey-log and debugger OCL-trace
* '''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 16563''' (Modified on 2025-04-11): DisplayMode did not correctly signal change when changed - fixed
* '''Revision 15540''' (Modified on 2024-04-03): Updating the MySQL driver to 8.3.0 due to reported linux issues
* '''Revision 16556''' (Modified on 2025-04-09): The OCLEditor has had rescue links that offer to fix the issue there and then. Now these rescue links are available in the ViewModel editors error list
* '''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 16551''' (Modified on 2025-04-08): AbstractAction now keeps a ref to its creating XElement to use with LLM info i ViewModelPlan
* '''Revision 15536''' (Modified on 2024-04-03): StartUpView constant
* '''Revision 16550''' (Modified on 2025-04-08): Issue with the REST sending using the newly added BYTEARRAYCONTENT fixed
* '''Revision 16534''' (Modified on 2025-04-02): Adding special name BYTEARRAYCONTENT to upload with restPut,post,patch a single blob (no multipart content) - works the same as STRINGCONTENT RestHead ocl operator has been added to only ask external service to return the headers. vResponseHeaders variable - when found and Rest call is made we populate variable with a return separated list of header-name:header-value
* '''Revision 16533''' (Modified on 2025-04-02): Removing some tracelog, adding some nullchecks
* '''Revision 16531''' (Modified on 2025-04-01): Discovered issue in in memory ocl for OclKinfOf (used internally to implement linq "is" ) Class2.allInstances->select(GenSym_0|GenSym_0.Class1.OclIsKindOf(Class1A)) self.Class1.OclIsKindOf(Class1A) gave true if singlelink "class1" was null - corrected in new builds
* '''Revision 16529''' (Modified on 2025-04-01): MDrivenServer SysAsyncTicket now use utcNow instead of server now, and the new file format on model


=== March 2024 ===
=== March 2025 ===
* '''Revision 15530''' (Modified on 2024-03-28): null checks
* '''Revision 16526''' (Modified on 2025-03-31): New property on selfVM called DisplayMode - that has one of the values enum DisplayModeEnum { UINormal, UIModal, UIPopup,Technical, RestPost, RestGet, RestPatch, RestPut,RestDelete }; Since ViewModels may have multiple usages it is good to be able to know the current use
* '''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 16523''' (Modified on 2025-03-27): RendersAction columns should take their ReadOnly state from the action-column they render, and this was not correctly implemented causing these columns to be enabled even when ReadOnlyMode was true. Actions in turnkey check again if they are enabled on the server just before execution to stop any injecting and outofsync execution Blazor checkboxes that render action should not also toggle their value - the action needs to be responsible for all data change Null check in client side VMClass Null check in debugger
* '''Revision 15520''' (Modified on 2024-03-26): Changing "Excel clip to M1" to "Text clip to M1"
* '''Revision 16512''' (Modified on 2025-03-25): DeleteReasonSolveMethod may act on data and it was not enclosed in the delete transaction - it is now DynamicEnumString did not implement IComparable and if used in a orderby expression it then failed Minimum slider of ViewModel in WPF designer has been increased to 6400 pixels Modlr check if clipboard sometimes fails with com-exception and we did not catch all - fixed
* '''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 16500''' (Modified on 2025-03-23): Improvements on Tajson logging
* '''Revision 15518''' (Modified on 2024-03-25): in angular binding you cannot have stringformat - and we applied it and thus broke the binding
* '''Revision 16499''' (Modified on 2025-03-21): work with azure automation
* '''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 16495''' (Modified on 2025-03-20): Added _Lookup action for enable fast lookup in addition to combobox method in import of data, for example in TaJson
* '''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 16489''' (Modified on 2025-03-20): Saw a deadlock between XMLPersistence and Init of singletons - rewrote to TryLock to Fix Issues with angularSort from new fixes to remember sorted indexes - turned out that angularJS flipped if there where many such grid in a UI - rewrote to own sorting logic
* '''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 16485''' (Modified on 2025-03-20): Issues with new _SortedMem solution in angular tables - fix2 Turnkey multiview comma on id could creep into MVC and wreck things - fixed.
* '''Revision 15504''' (Modified on 2024-03-22): Work in progress AutoBlazor
* '''Revision 16483''' (Modified on 2025-03-20): Issues with new _SortedMem solution in angular tables - fix
* '''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 16475''' (Modified on 2025-03-19): Turnkey Angular issue: selectWithShift in Tables that had been header-sorted did not work due to indices used where from unsorted data. Fixed
* '''Revision 15499''' (Modified on 2024-03-20): _Label subcolumn was not implemented for buttons in grids - fixed
* '''Revision 16471''' (Modified on 2025-03-18): Tuning of the OnDeleteReasonSolve implementation, also updated the error message on failed delete to inform about OnDeleteReasonSolve
* '''Revision 15492''' (Modified on 2024-03-17): Webassembly work in progress
* '''Revision 16470''' (Modified on 2025-03-18): Account management improved for TunrkeyCore
* '''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 16466''' (Modified on 2025-03-18): Issue in HistoryServer - one class came back as null in persistencemappers - do not understand rootcause , possibly something with close by evolve (maybe a save with wrong model somehow came through - but do not understand how) ...Null checks added to avoid complete stop
* '''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 16464''' (Modified on 2025-03-17): Work on CreateNode discovered error in RemoteTurnkeyGetStringValue
* '''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 16462''' (Modified on 2025-03-17): x
* '''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 16461''' (Modified on 2025-03-17): BREAKING CHANGE: extra parameter added to https://wiki.mdriven.net/index.php?title=Documentation:OCLOperators_OnDelete OnDeleteReasonSolve(reason:string; checked:Collection(SysSuperClass)) method DirtyListServiceImpl could create deadlocks and has been rewritten to TryRetryLock, this lead to dirtylist maybe null and some updates to handle this Fixing WPF wecpof ReadOnly-symbol-updating
* '''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 16457''' (Modified on 2025-03-14): Missed nullcheck in EnsurevCurrentIsWithinAndIfNotOrNullDoFirst could leave modal window empty - fixed LiveEdit timeout could give exception dialog - fixed
* '''Revision 15479''' (Modified on 2024-03-08): Improved error message if there is an exception in class method
* '''Revision 16451''' (Modified on 2025-03-12): BREAKING CHANGE: in AfterModalOk in actions we no longer provide vModalResult_selfVM variable. It was an old mistake that that in WPF the handover of vDirties to instigating view did not happen correctly - so vModalResult_selfVM.save was sometimes used. The mistake/bug is removed and hand-over of dirties is now the same in Turnkey and WPF - but vModalResult_selfVM.save would then be moot - and to signal this change the vModalResult_selfVM variable was removed altogether from AfterModalOk. There were also issues in turnkey when handover sometimes caused nullref exceptions and breaking signaling
* '''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 16447''' (Modified on 2025-03-07): Better handling of Tuple type re-occurence Null checks in VMClass SysGraphAPI error codes clarified in exception property (404-NotFound,403-NoAccess,401-NotLoggedIn)
* '''Revision 15475''' (Modified on 2024-03-06): Improving table rows selection.
* '''Revision 16438''' (Modified on 2025-03-04): issue with IExternalIdService.ObjectForGuidIfClassHasGuidProperty when Guid-property was nullable - fixed
* '''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 16436''' (Modified on 2025-03-03): ViewModelWPF datatables now populates contextmenu if alt or control is held to better honour keyboard shortcuts without extra work FindInModel key shortcut to bookmark now works Sometimes AccessGroup and other modal dialogs came up blank due to too late init of WPFDequeuer WebView2 could kill the app - now caught and stopped "Bookmark this" moved to Misc group
* '''Revision 15471''' (Modified on 2024-03-05): Model upload rewritten to become async to avoid UI lock for large models
* '''Revision 16429''' (Modified on 2025-03-01): Refactoring to reduce complexity of TurnkeyInterfaces project Added MDrivenServerCore and MDrivenServer WebApi for portalPush
* '''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 ===
=== February 2025 ===
* '''Revision 15456''' (Modified on 2024-02-29): Better error message on failed report
* '''Revision 16428''' (Modified on 2025-02-28): Some strangeness when going from tuple to collections were fixed StylesInModel dialog suffered from the above strangeness - fixed
* '''Revision 15448''' (Modified on 2024-02-27): OclEditor did not correctly provide help on selfVM members due to confusion with ordinary simple types
* '''Revision 16427''' (Modified on 2025-02-28): Image and File upload did not work if in ListView in angular - due to missing ID - fixed
* '''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 16426''' (Modified on 2025-02-28): Toolbar-abstractactions refered to in Buttons , skipped their AreYourSure due to an oversight that Toolbar collects actions from all levels in its own group. Fixed in Angular and Blazor CodeGen checkbox could easily be pressed by mistake because it was too long; Fixed
* '''Revision 15444''' (Modified on 2024-02-26): Fixed problem with deep direct links lacking full redirection URL. Added URL encoding to redirect URL.
* '''Revision 16423''' (Modified on 2025-02-28): Ability to bookmark from Tree, Diagram and errorlist, and search ; this greatly simplifies batch work as a developer - a fantastic feature inspired by Notepad++ Old issue found a and corrected : Major oversight that IndirectMultiAssociationEndCachePolicy was not handled by deserialize Issue with DoNotPersist-TV in modelLayer when having singlelinks with AssociationClass (new feature Bookmark)
* '''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 16419''' (Modified on 2025-02-26): Checksum change - name of association (the combined ends or unique name) was not in checksum - and codegen did not discover - fixed - requires updates of mdrivenserver to get checksums correct
* '''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 16418''' (Modified on 2025-02-26): OclEditor context finding - changes made and ideas for improvement located, this change tries to repair missing end paranthesis to give context match more often
* '''Revision 16412''' (Modified on 2025-02-21): Both angular and blazor had issue with double-click-in-table-in-modal-should-try-ModalOk - both fixed
* '''Revision 16401''' (Modified on 2025-02-20): Bug that ActAsForActions expressions did not include VM variables in runtime - causing runtime error when variables were used - fixed New GlobalUnRootedAlwaysNew was not honored if leftside action - only GlobalAction - this is fixed
* '''Revision 16400''' (Modified on 2025-02-19): Renaming SysMDrivenMiscSettingSingleton.GlobalSeekersAlwaysNew to GlobalUnRootedAlwaysNew to better reflect the new MultiView behaviour
* '''Revision 16398''' (Modified on 2025-02-19): RegExpSplit ocl operator added : https://wiki.mdriven.net/Documentation:OCLOperators_regExpSplit DebuggerView showing whole part of current xml-persisted model became too long - now only shows file name

Revision as of 05:00, 19 June 2025


__HIDECREDIT__

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

June 2025

  • Revision 16737 (Modified on 2025-06-18): x
  • Revision 16736 (Modified on 2025-06-18): Real life case where MDrivenServerSync-block was tagged with wrong ModelChecksum due to checksum from actual save block creation was not caught and kept - instead the checksum was retrieved again prior to insert of synkblock and at this point the evolve had added a new version. Freak occurrence blocked from happening again.
  • Revision 16735 (Modified on 2025-06-17): When building ListViews - and having de-reference to single nesting (as will happen when mounting viewmodel) there is now support for IncludeHere tagged value that will NOT de-reference and put cursored controls out of listview as standard - instead IcnludeHere tag will bring in rendering into the current listview row; this makes it possible to have a list of mounted viewmodels (all the same definition though)
  • Revision 16732 (Modified on 2025-06-16): When using ListViews the supported behavior has not allowed subnestings from row (worked only of subnesting was other listview) - for single links these where interpreted as "dereference/render-after" - but for MountedViewModel this made it impossible to have Mounts inside the ListViewRow , to better handle this the "IncludeHere" tag value can be set on the Mount-point-column or also on a SingleLink-reference; work in progress
  • Revision 16731 (Modified on 2025-06-16): Mistake in SearchLogic from last checkin made TotalCount get value of pagecount if special search (missing words+semicolon) was tested but not applied - fixed
  • Revision 16730 (Modified on 2025-06-13): Better return of checksum, null checks after real life scenarios TraceLogTurnkey now catches first trace with TRACESTART and prune app with PRUNEAPP trace entries to better see dynamics of usage
  • Revision 16727 (Modified on 2025-06-12): Issue with ocleditor context finding when writing expressions - specially the case self.DeepClone(SomeType.ViewModels.SomeView) was not any good at any of the levels of the inner expression SomeType.ViewModels.SomeView
  • Revision 16721 (Modified on 2025-06-10): Now Seekers in turnkey will init their vSeekerResultCount to -1 , and this will be used to avoid showing "No results" prior to first search The special search for missing words (replacing space with wildcard) has been limited to strings under 200 in length to avoid undue db stress The special search for multi-search had issues with AutoForms/Template created seeker forms due to use of vSeekParamWildcard that included wildcard in value to allow for sqlite to not having a parser meltdown... Long story, but fixed. Seekers-paging-buttons in web did not show count if the count was 1, it does now
  • Revision 16717 (Modified on 2025-06-09): When parsing xml datablock we now fallback to check for Ansi-datetime on datetimes (before only binary) OCLDebugger has new button to Vibe demo data from a given diagram
  • Revision 16716 (Modified on 2025-06-09): Runtime updated to allow for default-opt-out of actions making it easier to maintain large model where some viewModels should be stable and not get new class actions as they are added - but rather wait for explicit opt-in. This is a per viewmodel choice named default-opt-out
  • Revision 16704 (Modified on 2025-06-01): Improved sorting on menus i web when mixing menus without group and those with group Continued work with Vibe-information

May 2025

  • Revision 16699 (Modified on 2025-05-28): StylesInModel issue with button not gettings its icon covered by the componentlabel target - fixed
  • Revision 16693 (Modified on 2025-05-27): selfVM.ExecuteAction used internal function that could fail if Nestings for searchexpressions were present - fixed. Vibe UI - LLM updated prompt and fed xml to reduce misunderstandings
  • Revision 16681 (Modified on 2025-05-25): Detection of issue with missing PlacingContainer in single Nestings when Span has them - this issue break rendering a new error in error check has been added - and also a rescue operation to fix with one click
  • Revision 16680 (Modified on 2025-05-23): In C# Math.Round(-1.0/10000) gives negative zero that survives to ToString giving "-0.00". This is legit but annoying and deemed of low value so in MDriven (-1.0/10000).Round(2) will from now on return a positive zero
  • Revision 16678 (Modified on 2025-05-21): Issue in ViewModelEditor with Mounted views - fixed
  • Revision 16676 (Modified on 2025-05-21): Long limitation that Bag{1,2,3} did not really return a bag but instead a Set - combined with limitation that union filtered away duplicates gave this expression Bag{1,2,3}->union(Bag{1,2,3}) to return 1,2,3 instead of the expected 1,2,3,1,2,3 - fixed
  • Revision 16670 (Modified on 2025-05-20): ActionRenderPosition has a new value:ButtonOnly, this is used when a leftside/toolbar action is opted out - but still used in one or more buttons This change fixes several old problems; specially the one that AreYouSureQuestions where not properly handled of action was outopted but used in button, and that optout level had importance for ViewModelContextAction
  • Revision 16669 (Modified on 2025-05-19): DynamicEnumString did not correctly implement Equals leading to combobox presentation halting
  • Revision 16668 (Modified on 2025-05-19): IgnoreContent of PlacingContainer implemented in WPF flexpanel
  • Revision 16667 (Modified on 2025-05-16): ElementHandle did not correctly create columns when switching types if new type was IEnumerationType - effected debugger output that showed last result type if the result type was IEnumerationType
  • Revision 16666 (Modified on 2025-05-16): Ocl_includes did not handle enum compare - fixed
  • Revision 16663 (Modified on 2025-05-14): --text-on-primary text on buttons was set to white - but several issues made it not reach the theme-default, the theme-default issues has been resolved and then text on button became white - this is now changed to black Width of tk-input-field--datepicker was reduced - for no apparent reason - now its treated as any other input StylesInModel was unable to reach and set the text of buttons - now fixed Turnkey runtime prepared for new PlacingContainer property that controls flexbasis called IgnoreContent
  • Revision 16659 (Modified on 2025-05-13): BREAKING CHANGE: Assignment := goes from RHS-type to LHS-type (Left hand side decides type today and onwards). This WILL MOST LIKELY break a few expression. You fix them by typecasting. Read how and why here: https://learn.mdriven.net/index.php?title=Documentation:OCLOperators_:%3D
  • Revision 16658 (Modified on 2025-05-13): OclResultTypeDeduceMethod.TypeOfFirstParam was really 2 and OclResultTypeDeduceMethod.TypeOfSecondParam was really 3 - fixed this and also added OclResultTypeDeduceMethod.TypeOfThirdParam This gave problem when implict upgrading ints to double in a assign somedouble:=0 when it was enclosed in ->collect because the list was int and not of double
  • Revision 16655 (Modified on 2025-05-13): ExecuteFrameworkRuntimeActionRT.ReadOnlyModeToogle is corrected to ExecuteFrameworkRuntimeActionRT.ReadOnlyModeToggle
  • Revision 16641 (Modified on 2025-05-10): OclVariableConverter a TypeConverter needed for design and winforms design code gen has been moved from eco.handles.design to eco.handles - this is to de-confuse the winforms .net8 designhost (designtoolserver) and also de-confuse extension loaded types from project loaded types. This means that to get consistent behaviour (non missbehaving winforms editors) you need MDriven design time and MDriven nuget mdriven.handles no older than THIS version
  • Revision 16640 (Modified on 2025-05-09): OclVariable as placeble component did not work with new required winforms net48<>net5 streaming - now works for net48
  • Revision 16639 (Modified on 2025-05-09): OclVariable as placeble component did not work with new required winforms net48<>net5 streaming - work in progress
  • Revision 16637 (Modified on 2025-05-09): ReadOnlyMode when turned on globally also affected MVCAutoForms - and that made debug editing harder - we now let these forms ignore ReadOnlyMode
  • Revision 16636 (Modified on 2025-05-08): ReadOnlyMode when turned on globally also affected MVCAutoForms - and that made debug editing harder - we now let these forms ignore ReadOnlyMode SERIOUS BUG: A month old bug regarding IdentityChangers (new objects has guid id, and saved get permanent id) - when on root webclients did not correctly update url to show new id, and whats client side viewmodels did not get all the needed IdChange messages to correctly upgrade id on objects held deeper in hierarchy than root. Fixed
  • Revision 16633 (Modified on 2025-05-07): Update to vSysReadOnlyMode is NOT entered if the object IsNew
  • Revision 16630 (Modified on 2025-05-07): Issue that Seek multiple times on same string sometimes could remove the selection made by AutoSelectFirstRow - fixed
  • Revision 16626 (Modified on 2025-05-06): Changes on all operations for GraphAPI access to deduce if it is "InvalidAuthenticationToken" and if so - refresh the token and execute the operation again
  • Revision 16625 (Modified on 2025-05-06): AutoFirstSelectRow was glitchy if something was selected prior to new search

April 2025

  • Revision 16615 (Modified on 2025-04-28):
  • Revision 16613 (Modified on 2025-04-28): Issue in angularclient that ctrl keys did not fully do their after action due to roundtrip fillup Add variable-dialog now offers a As-collection checkbox instead of having all the types all the time
  • Revision 16612 (Modified on 2025-04-28): Added the enable expression that gives false in the log, when the serverside action is not allowed to run.
  • Revision 16608 (Modified on 2025-04-26): Nuget package update: Azure.Core, Version=1.45 System.ClientModel, Version=1.2.1 System.Runtime.CompilerServices.Unsafe, Version=6.0.1.0 System.Threading.Tasks.Extensions, Version=4.2.1.0 System.Runtime, Version=4.3.1 System.Security.Cryptography.ProtectedData, Version=6.0.0
  • Revision 16607 (Modified on 2025-04-26): Major updates to advanced styling with LLM support and fast-track-CSS to help you shine
  • Revision 16606 (Modified on 2025-04-26): ExtentService - added 2 new methods: /// If the class is Singleton this fetch, possibly create the instance IObject Singleton(IClass c); /// If the class is Singleton this fetch, possibly create the instance T Singleton<T>() where T : class, IEcoObject;
  • Revision 16599 (Modified on 2025-04-24): The Turnkey/Development?view= service was untested and failed in certain cases. Fixed
  • Revision 16598 (Modified on 2025-04-24): Theme upload did not happen unless there was a style - fixed
  • Revision 16591 (Modified on 2025-04-23): ThemeStyling continued work
  • Revision 16590 (Modified on 2025-04-23): Issue in debugger when cloning ViewModel vars and one is a Tuple - Fixed issue Changes for Keyboard shortcuts for Save(ctrl+s) SaveAndLock(ctrl+enter) EditMode(ctrl+e) CancelAndLock(ESC) undo(ctrl+z) redo(ctrl+y). This is in angularjs and Blazor-client
  • Revision 16584 (Modified on 2025-04-22): Recent fix for actions accidently broke evaluation if the action enable expression was empty - fixed
  • Revision 16583 (Modified on 2025-04-21): New Tab in LiveEdit - advanced-styling, work in progress
  • Revision 16579 (Modified on 2025-04-17): Improved on hints when using things only valid in action in ocl in ocleditor errors
  • Revision 16578 (Modified on 2025-04-17): In OCL we now fill the EnumOrd to the ordinal number of the enumerated value (0,1,2) MyEnum.allinstances.EnumOrd And we allow comparison between Enum.value and integer (falls back EnumOrd )
  • Revision 16576 (Modified on 2025-04-16): Updates to enable MDriven VS2022 on ARM64 - this required .netFramework48 and late VS2022 (Version 17.13.6) Everything that WAS compiled with .netFramework472 has been raised to .netFramework48 (this does not concern things compiled with netStandard or netcore+ (net6,7,8)) THIS IS IMPORTANT: Update your VS2022, Update your MDriven Nugets, If you get build breaks check that YOUR THINGS TARGET at least .netFramework48 Saying again with other words: WE NOW LEAVE .netFramework472 and older behind forever - use .netFramework48 as the minimum.
  • Revision 16575 (Modified on 2025-04-16): SysViewStateCookie included the vSysReadOnlyMode variable - this was unintentional and it is not included in new SysViewStateCookies
  • Revision 16574 (Modified on 2025-04-16): CacheInvalidation revisited and an assumption was proved wrong and rectified - old manifests were to big due to this oversight
  • Revision 16573 (Modified on 2025-04-16): The selfVM.CanExecute ran into problem when evaluating a placed buttons enableexpression if the placed button was on subnesting and not pointing to an abstractaction (then it wrongfully used context of sublevel - but in these cases context is vmroot). Fixed
  • Revision 16571 (Modified on 2025-04-15): CommandTimeout option added to SQLImport and SQLExport functions in MDrivenServer
  • Revision 16570 (Modified on 2025-04-15):
  • Revision 16568 (Modified on 2025-04-11): OCLEditor has a new "Second pair of eyes" option that helps to spot issues with expression (LLM powered)
  • Revision 16567 (Modified on 2025-04-11): When listing native type values in combo box and trying to assign one by pick Turnkey ran into problems as soon as it was not an enumeration or a string, now behaves better for datetime,bool,int,double,decimal
  • Revision 16566 (Modified on 2025-04-11): selfVM.LogEntry fixes
  • Revision 16565 (Modified on 2025-04-11): Added Move column out of conflict position as one one the new Rescue operations
  • Revision 16564 (Modified on 2025-04-11): selfVM.LogEntry('say something') will output a row in MDrivenServer-log and Turnkey-log and debugger OCL-trace
  • Revision 16563 (Modified on 2025-04-11): DisplayMode did not correctly signal change when changed - fixed
  • Revision 16556 (Modified on 2025-04-09): The OCLEditor has had rescue links that offer to fix the issue there and then. Now these rescue links are available in the ViewModel editors error list
  • Revision 16551 (Modified on 2025-04-08): AbstractAction now keeps a ref to its creating XElement to use with LLM info i ViewModelPlan
  • Revision 16550 (Modified on 2025-04-08): Issue with the REST sending using the newly added BYTEARRAYCONTENT fixed
  • Revision 16534 (Modified on 2025-04-02): Adding special name BYTEARRAYCONTENT to upload with restPut,post,patch a single blob (no multipart content) - works the same as STRINGCONTENT RestHead ocl operator has been added to only ask external service to return the headers. vResponseHeaders variable - when found and Rest call is made we populate variable with a return separated list of header-name:header-value
  • Revision 16533 (Modified on 2025-04-02): Removing some tracelog, adding some nullchecks
  • Revision 16531 (Modified on 2025-04-01): Discovered issue in in memory ocl for OclKinfOf (used internally to implement linq "is" ) Class2.allInstances->select(GenSym_0|GenSym_0.Class1.OclIsKindOf(Class1A)) self.Class1.OclIsKindOf(Class1A) gave true if singlelink "class1" was null - corrected in new builds
  • Revision 16529 (Modified on 2025-04-01): MDrivenServer SysAsyncTicket now use utcNow instead of server now, and the new file format on model

March 2025

  • Revision 16526 (Modified on 2025-03-31): New property on selfVM called DisplayMode - that has one of the values enum DisplayModeEnum { UINormal, UIModal, UIPopup,Technical, RestPost, RestGet, RestPatch, RestPut,RestDelete }; Since ViewModels may have multiple usages it is good to be able to know the current use
  • Revision 16523 (Modified on 2025-03-27): RendersAction columns should take their ReadOnly state from the action-column they render, and this was not correctly implemented causing these columns to be enabled even when ReadOnlyMode was true. Actions in turnkey check again if they are enabled on the server just before execution to stop any injecting and outofsync execution Blazor checkboxes that render action should not also toggle their value - the action needs to be responsible for all data change Null check in client side VMClass Null check in debugger
  • Revision 16512 (Modified on 2025-03-25): DeleteReasonSolveMethod may act on data and it was not enclosed in the delete transaction - it is now DynamicEnumString did not implement IComparable and if used in a orderby expression it then failed Minimum slider of ViewModel in WPF designer has been increased to 6400 pixels Modlr check if clipboard sometimes fails with com-exception and we did not catch all - fixed
  • Revision 16500 (Modified on 2025-03-23): Improvements on Tajson logging
  • Revision 16499 (Modified on 2025-03-21): work with azure automation
  • Revision 16495 (Modified on 2025-03-20): Added _Lookup action for enable fast lookup in addition to combobox method in import of data, for example in TaJson
  • Revision 16489 (Modified on 2025-03-20): Saw a deadlock between XMLPersistence and Init of singletons - rewrote to TryLock to Fix Issues with angularSort from new fixes to remember sorted indexes - turned out that angularJS flipped if there where many such grid in a UI - rewrote to own sorting logic
  • Revision 16485 (Modified on 2025-03-20): Issues with new _SortedMem solution in angular tables - fix2 Turnkey multiview comma on id could creep into MVC and wreck things - fixed.
  • Revision 16483 (Modified on 2025-03-20): Issues with new _SortedMem solution in angular tables - fix
  • Revision 16475 (Modified on 2025-03-19): Turnkey Angular issue: selectWithShift in Tables that had been header-sorted did not work due to indices used where from unsorted data. Fixed
  • Revision 16471 (Modified on 2025-03-18): Tuning of the OnDeleteReasonSolve implementation, also updated the error message on failed delete to inform about OnDeleteReasonSolve
  • Revision 16470 (Modified on 2025-03-18): Account management improved for TunrkeyCore
  • Revision 16466 (Modified on 2025-03-18): Issue in HistoryServer - one class came back as null in persistencemappers - do not understand rootcause , possibly something with close by evolve (maybe a save with wrong model somehow came through - but do not understand how) ...Null checks added to avoid complete stop
  • Revision 16464 (Modified on 2025-03-17): Work on CreateNode discovered error in RemoteTurnkeyGetStringValue
  • Revision 16462 (Modified on 2025-03-17): x
  • Revision 16461 (Modified on 2025-03-17): BREAKING CHANGE: extra parameter added to https://wiki.mdriven.net/index.php?title=Documentation:OCLOperators_OnDelete OnDeleteReasonSolve(reason:string; checked:Collection(SysSuperClass)) method DirtyListServiceImpl could create deadlocks and has been rewritten to TryRetryLock, this lead to dirtylist maybe null and some updates to handle this Fixing WPF wecpof ReadOnly-symbol-updating
  • Revision 16457 (Modified on 2025-03-14): Missed nullcheck in EnsurevCurrentIsWithinAndIfNotOrNullDoFirst could leave modal window empty - fixed LiveEdit timeout could give exception dialog - fixed
  • Revision 16451 (Modified on 2025-03-12): BREAKING CHANGE: in AfterModalOk in actions we no longer provide vModalResult_selfVM variable. It was an old mistake that that in WPF the handover of vDirties to instigating view did not happen correctly - so vModalResult_selfVM.save was sometimes used. The mistake/bug is removed and hand-over of dirties is now the same in Turnkey and WPF - but vModalResult_selfVM.save would then be moot - and to signal this change the vModalResult_selfVM variable was removed altogether from AfterModalOk. There were also issues in turnkey when handover sometimes caused nullref exceptions and breaking signaling
  • Revision 16447 (Modified on 2025-03-07): Better handling of Tuple type re-occurence Null checks in VMClass SysGraphAPI error codes clarified in exception property (404-NotFound,403-NoAccess,401-NotLoggedIn)
  • Revision 16438 (Modified on 2025-03-04): issue with IExternalIdService.ObjectForGuidIfClassHasGuidProperty when Guid-property was nullable - fixed
  • Revision 16436 (Modified on 2025-03-03): ViewModelWPF datatables now populates contextmenu if alt or control is held to better honour keyboard shortcuts without extra work FindInModel key shortcut to bookmark now works Sometimes AccessGroup and other modal dialogs came up blank due to too late init of WPFDequeuer WebView2 could kill the app - now caught and stopped "Bookmark this" moved to Misc group
  • Revision 16429 (Modified on 2025-03-01): Refactoring to reduce complexity of TurnkeyInterfaces project Added MDrivenServerCore and MDrivenServer WebApi for portalPush

February 2025

  • Revision 16428 (Modified on 2025-02-28): Some strangeness when going from tuple to collections were fixed StylesInModel dialog suffered from the above strangeness - fixed
  • Revision 16427 (Modified on 2025-02-28): Image and File upload did not work if in ListView in angular - due to missing ID - fixed
  • Revision 16426 (Modified on 2025-02-28): Toolbar-abstractactions refered to in Buttons , skipped their AreYourSure due to an oversight that Toolbar collects actions from all levels in its own group. Fixed in Angular and Blazor CodeGen checkbox could easily be pressed by mistake because it was too long; Fixed
  • Revision 16423 (Modified on 2025-02-28): Ability to bookmark from Tree, Diagram and errorlist, and search ; this greatly simplifies batch work as a developer - a fantastic feature inspired by Notepad++ Old issue found a and corrected : Major oversight that IndirectMultiAssociationEndCachePolicy was not handled by deserialize Issue with DoNotPersist-TV in modelLayer when having singlelinks with AssociationClass (new feature Bookmark)
  • Revision 16419 (Modified on 2025-02-26): Checksum change - name of association (the combined ends or unique name) was not in checksum - and codegen did not discover - fixed - requires updates of mdrivenserver to get checksums correct
  • Revision 16418 (Modified on 2025-02-26): OclEditor context finding - changes made and ideas for improvement located, this change tries to repair missing end paranthesis to give context match more often
  • Revision 16412 (Modified on 2025-02-21): Both angular and blazor had issue with double-click-in-table-in-modal-should-try-ModalOk - both fixed
  • Revision 16401 (Modified on 2025-02-20): Bug that ActAsForActions expressions did not include VM variables in runtime - causing runtime error when variables were used - fixed New GlobalUnRootedAlwaysNew was not honored if leftside action - only GlobalAction - this is fixed
  • Revision 16400 (Modified on 2025-02-19): Renaming SysMDrivenMiscSettingSingleton.GlobalSeekersAlwaysNew to GlobalUnRootedAlwaysNew to better reflect the new MultiView behaviour
  • Revision 16398 (Modified on 2025-02-19): RegExpSplit ocl operator added : https://wiki.mdriven.net/Documentation:OCLOperators_regExpSplit DebuggerView showing whole part of current xml-persisted model became too long - now only shows file name
MDriven Chat

How would you like to chat today?

Setting up your conversation…

This may take a few moments