Release Notes
Release notes
All the latest MDriven Fixes and Updates

MDriven - April 2024



  • Improved filter functionality: "Filter associations" renamed to "Filter members" for better clarity. This filter now effectively filters all elements on the screen.
  • Enhanced performance during rendering by addressing inefficiencies caused by drawing during measuring.


  • Fixed an issue where the ViewModelEditor combo box name wouldn't update correctly when switching to "No-Category."

Error Checking Optimization:

  • Implemented changes to significantly reduce the time taken for subsequent error checks in modlr. This optimization tracks locally changed elements, their potential effects, and only re-checks affected areas.

Code Generation:

  • Checksum based codegen. This speeds up code generation by incorporating a checksum written to code checks.
  • Enhanced CodeGenGoverningInfo to identify code generation diffs even in scenarios where code generation wasn't performed (by you or someone else).


  • Improved the "Changes" button functionality within CloudForm. The process now begins with a quick checksum check, followed by an optional view of the checksum diff, and lastly, the optional view of upcoming database changes.


  • Fixed a deadlock issue in the Designer that occurred when error checking attempted to look up ViewModelNames for Class.ViewModels variables.
  • Resolved a long-standing WPF bug that prevented dragging elements from the debugger to the application. Unnecessary parameters were removed to address this issue.
  • Addressed a problem with a hardcoded backslash for Unix systems. The correct Path.DirectorySeparatorChar is now used.



  • Fixed an issue related to incorrect stopping of SignalR Core.
  • Implemented proper disconnect from SignalR upon page reload.
  • Added a client-side service shutdown to prevent communication with the server during page reload, avoiding potential interference with redirects.
  • Enhanced logging for SignalR events.

General Bug Fixes:

  • Resolved two separate null reference problems.
  • Improved logging helpers to ensure log files are available before logging attempts.
  • Addressed a hardcoded backslash issue for Unix systems, using Path.DirectorySeparatorChar for correct path handling.
  • Fixed a case-sensitivity problem within Turnkey paths for Linux.
  • Corrected two instances where MapPathService.MapPath was using the wrong slash type (forward slash needed for platform compatibility).
  • Adjusted advanced table inputs and navbar resizing.
  • Implemented a fix for image fallback behavior. A null image cannot be used directly, but a valid link is required for proper fallback image loading.
  • Improved navbar wrapping and styling for save bar buttons.
  • Adjusted navbar height to accommodate wrappable menu items.

Turnkey UI:

  • Turnkey Toolbar: Introduced initial work on the ActionRenderPositionEnum Toolbar feature. This feature aims to categorize actions in the Turnkey UI:
  • Actions that navigate without data changes remain on the left side menu.
  • Actions that modify data, navigate, or involve saving/canceling/editing will be placed in a new horizontal toolbar below the main menu.
  • Adjusted CSS to ensure proper height calculation for the #viewmodelSection element.
  • Removed complex logic for main menu overflow handling. This will be replaced with CSS-based solutions.
  • Implemented a new method to prevent JavaScript execution during page reloads.
  • Defined the StartUpView concept for Turnkey Core, introducing a special page displayed while the application warms up. More details available here:
  • Moved the StartupViewTemplate_AppOverride.htm file to the views\turnkey\ directory for better organization.



  • Updated logging helpers to ensure they wait for log files to appear before logging attempts. This improves the reliability of logging messages.

Server-Side Jobs:

  • MdrivenServer now automatically applies SSJobs (SQL Server Jobs?) on Evolve. This eliminates the need for the "Update Server-Side Jobs" button, streamlining the deployment process.



  • Introduced a significant change to how variables and validations are edited. They are now displayed in a tree structure for better organization and accessibility.

Turnkey App:

  • Resolved an issue with the "Toolbar mode" functionality (work in progress). More details and documentation are available here:
  • Fixed a problem within Turnkey, Modal DesignedButton with ExecuteFrameworkRuntimeActionRT.DoModalOk. The button's enable property now correctly reflects the enable expression of the designed action.

Checksum Enhancements:

  • Addressed a code generation (Checksum) issue related to Statemachines, ensuring they are fully included in the process.
  • Continued improvements to the Checksum functionality:
  • Method Checksum calculations now exclude namespaces, improving accuracy.
  • Checksums for Enum types are now consistently represented as "ENUM."


  • Resolved a deadlock issue involving SysMDrivenMiscSettingsSingleton locks.
  • Fixed a bug that prevented updating validations in WPF when data changed for multiple columns. Validations are now consolidated for better efficiency.
  • Addressed a situation where SysAsyncTicket objects might have a null rootid value. This is now prevented by ensuring the referenced object gets a persistent ID.
  • Improved image download functionality using GetVMImageUrl when the application resides in a subfolder.
  • Enhanced error handling for ViewModelActions connected to Buttons. The server now searches for the action across all ViewModelClasses if not found in the initially provided one.
  • Updated the MySQL driver to version 8.3.0 to address reported Linux issues.
  • Defined the StartUpView constant.

MDriven - March 2024

Improved User Interface

  • Enhanced selection behavior in the View Model Editor to function even when action errors are present.
  • Introduced a "Hide on Disable" option for actions, allowing for actions to be completely hidden from end-user when so desired.
  • Error messages during OCL execution now pinpoint the specific method causing the issue.

Multi-Select Functionality

  • Implemented multi-select functionality in web UI tables, improving workflow efficiency.
  • Improved Model Upload
    • Resolved an issue where model uploads caused the application to become unresponsive. Uploads now run asynchronously.

Data Handling

  • Introduced a new vCurrent_Root variable for simpler access to the root element from any location within the view model. This streamlines copying and pasting view models while maintaining functional expressions.
  • Enhanced context sensitivity during OCL editing, providing more relevant suggestions based on the current context.

Database Consistency

  • Introduced a new validateA0DbData function for the MDriven server to identify and potentially fix inconsistencies within the database.
  • Debugger Improvements
    • Resolved an issue where the debugger lost the implicit selfVM variable upon model reread.

Error Handling

  • Improved error message clarity for type mismatches, providing more informative warnings.
  • Enhanced error handling for OCL expressions with mismatched data types, now displaying red dots to indicate errors within the model.

User Interface

  • Fixed a bug where left menu actions appeared as permanently selected or executable.
  • Addressed a navigation issue within pop-ups where the root object wasn't passed correctly.

Reverse engineering databases

  • Improved functionality for reverse engineering, particularly for Postgres databases.
  • Addressed general improvements to the reverse engineering process.

Access groups

  • Access Group Permissions
  • Resolved access group permission issues related to global actions.

Improved Handling of Division by Zero

  • Errors caused by division by zero are now handled more gracefully. Instead of crashing the application, the result will be set to the maximum decimal value.

Advanced Tables Feature

  • Introduced a new "Advanced Tables" turnkey feature. This feature can be enabled globally or for specific tables via tag values.
  • Enabling Advanced Tables provides functionalities like resizing columns, sorting data, and other advanced table manipulation capabilities.

Additional Notes

  • NavigateURL Overload: A new overload has been introduced for the selfVM navigate URL function. This allows you to specify whether you want to open the URL in a new tab or the current tab.
  • Read-Only Mode Information: Refer to other resources for detailed information on the read-only mode.
  • Improved Server Stability: Mitigated server restarts caused by errors in server-side jobs using the SQL pass-through operator.
  • Enhanced Cache Invalidation: Fixed a bug where mounting view models within other view models didn't trigger proper cache invalidation, potentially leading to outdated data.
  • MDriven Visual Studio Plugin - Improved Performance: Resolved an issue where code generation within the Visual Studio plugin caused the UI to temporarily freeze, especially for large models.
  • Limited Data Fetching in OCL Expressions: Introduced a new feature to limit data fetching within OCL expressions, actions, and persistent storage execution. This helps prevent accidental retrieval of massive amounts of data that could overwhelm the system.

Improved Performance

  • Introduced a new setting named "SSServiceSideJobParallelism" for periodic actions. This allows you to configure the number of parallel workers used to execute these actions on the MDriven server. This functionality helps optimize performance by controlling the number of jobs running concurrently.

Improved User Interface

  • Fixed a bug where left menu actions displayed incorrectly.
  • Addressed an issue where global actions and access groups interacted poorly.
  • Enhanced Error Handling
    • Introduced improved error messages for report generation failures.

Additional Notes: The new "Merge Model" functionality for OpenAI integration requires downloading additional components from GitHub. Refer to the MDriven documentation for detailed instructions.