ReleaseNotes
(Adding message template to the top of the page)
(Replacing message template with parser tag)
 
Line 1: Line 1:
{{message|Write the content here to display this box}}
<message>Write the content here to display this box</message>
__NOTOC__
__NOTOC__
<html>
<html>

Latest revision as of 08:05, 17 June 2024


Release Notes
Release notes
All the latest MDriven Fixes and Updates

MDriven - May 2024

Designer

  • Improved Data Download Support: We've implemented the OnInitiateUserDownloadOfData function to better support the SysDocBatch pattern, allowing for more efficient data downloads. (Revision 15693)
  • Easier Access to Authentication Tokens: Developers can now easily access GetDecodedAccessAndRefreshTokenOnClient for Graph API Support, simplifying authentication workflows. (Revision 15685)
  • Enhanced Expression Handling:
    • The score calculation for expressions now differentiates between PSExpression and ocl expressions, providing more accurate results. (Revision 15672)
    • We've improved the overall score calculation for Expressions and ViewModels. (Revision 15669)
    • The ExpressionAnalyze function now calculates a score based on MDrivenServer statistics, offering better insights into expression performance. (Revision 15668)
    • The OCL editor tree now displays MDrivenServer statistics per class and associationEnd, along with the cost of all included expressions when analyzing expressions. (Revision 15667)
  • WPF Improvements:
    • The subscription on DirtyList has been enhanced to ensure the Save button updates correctly in WPF applications. (Revision 15660)
    • A null reference exception related to focusing a combobox and context menus has been fixed. (Revision 15660)
  • Thumbnail Performance Optimization: ViewModels and Diagrams thumbnails are now rendered using PNG files stored in a dedicated cache directory (_CachedImages). This approach improves performance and memory usage, especially for large models. (Revision 15652)
  • Model Editing Enhancements:
    • We've implemented error detection for ReadOnly and Visible expressions used within mounted ViewModels. This prevents potential issues arising from differences in the top-level self context. (Revision 15647)
    • The "Find in model" functionality now includes PlacingContainer Visible and Style expressions in its search. (Revision 15645)
  • Action Window Improvements:
    • Action windows have been consolidated into a single window with tab functionality, allowing users to easily switch between different actions. (Revision 15642)
    • Action windows now include "Close only this" and "Re-sort" tabs for better organization. (Revision 15643)
    • The header of the action window is now updated upon opening. (Revision 15643)
  • Action Opt-Out Clarification: The user interface for action opt-out has been improved for better clarity. The opt-out button has been removed from view model actions as it is no longer applicable. (Revision 15622)

Additional Bug Fixes:

  • Resolved various other bugs and implemented minor improvements throughout the application.

Turnkey

This release builds upon the previous improvements to SysDocBatch functionality introduced in v15693. Here's a summary of the key changes:

  • Enhanced SysDocBatch Support:
    • Clarification on the purpose of the SysDocBatch pattern for managing downloads and prints in batch. (Revision 15694, Revision 15690, Revision 15687)
    • Emphasis on the new selfVM operators:
      • SysDocBatchEnsured(ViewModelReferenceType vmref): Ensures a ViewModelReference is downloaded as part of a batch.
      • SysDocBatchZip(ViewModelReferenceType vmref): Zips a ViewModelReference for download as part of a batch.
  • Other Improvements:
    • Graph API User and Group Support: Reminder that SysGraphAPI was extended to include functionality for users and groups. (Revision 15678)
    • Resolved potential deadlock issue: Addressed a potential deadlock scenario introduced in Revision 15650 related to pruning the _ServerToClientQueue. (Revision 15650)
      • Toolbar Enhancements:
        • Fixed a toolbar issue where only the first ActionGroup was displayed. Now the toolbar shows all action groups, including always-show actions. (Revision 15626)
        • Improved toolbar styling. (Revision 15633)
    • Advanced Table Height: Removed the previously introduced height calculation for advanced tables, allowing them to follow placing container rules or row-span min-height rules. (Revision 15670)
  • Other Bug Fixes:
    • Fixed a JavaScript error caused by a missing null check. (Revision 15639)
    • Addressed various toolbar-related issues to improve user experience. (Revision 15640, Revision 15634)
    • Resolved a bug with the advancedTable.directive that caused table height changes when adding rows. (Revision 15657)

Framework

Bug Fixes

  • SysDocBatch Support: Introduced a new pattern (SysDocBatch) for managing downloads and prints in batch. This feature includes new selfVM operators:
    • SysDocBatchEnsured(ViewModelReferenceType vmref): Ensures a ViewModelReference is downloaded as part of a batch.
    • SysDocBatchZip(ViewModelReferenceType vmref): Zips a ViewModelReference for download as part of a batch. (Revision 15687)
  • Improved Data Download: Implemented the OnInitiateUserDownloadOfData function to support the SysDocBatch pattern, enabling more efficient data downloads. (Revision 15692)
  • Graph API Authentication Support: Provided easier access to GetDecodedAccessAndRefreshTokenOnClient for GraphAPISupport, simplifying authentication workflows for developers. (Revision 15685)
  • Enhanced Expression Handling:
    • The ColumnFieldConsistencyCheck function now compares database and model field types to identify potential inconsistencies. (Revision 15661, Revision 15662, Revision 15664)
    • OCL editor tree displays MDrivenServer statistics per class and associationEnd, along with expression costs. (Revision 15666)

WPF Improvements:

  • DataGrid Performance Optimization: Enabled Row+ColumnVirtualization for WPF DataGrids to enhance performance, especially for grids with many columns. (Revision 15654)
  • DirtyList Subscription: Improved the subscription on DirtyList to ensure the Save button updates correctly. (Revision 15660)
  • Null Reference Fix: Resolved a null reference exception related to focusing a combobox and context menus. (Revision 15660)

AngularJS Editing Fix:

  • AngularJS edit controls: String formatting for databinding is now handled differently to avoid breaking the databind while preserving number formatting. (Revision 15681)

Other Bug Fixes:

  • Resolved various bugs related to SoapCalls, including encoding headers and decompression. (Revision 15683, Revision 15684)
  • Fixed issues with combobox selection, CSSGrid rendering, and error messages. (Revision 15674, Revision 15676, Revision 15679, Revision 15651)
  • Addressed database snapshot functionality in MDrivenServerCore. (Revision 15661)
  • Improved handling of mounted ViewModels and expressions. (Revision 15647)
  • Numerous other bug fixes and improvements throughout the application.

Server

This release focuses on improving database schema management and data integrity. Here's a breakdown of the key changes:

  • Enhanced Database Schema Validation:
    • Introduced a new function in MDrivenServer/Admin/ColumnFieldConsistencyCheck. This function analyzes and compares database field types with their corresponding model types. This helps identify potential inconsistencies that could lead to "will not evolve" warnings. (Revision 15661)
    • Improved null handling in AdminORMapping to provide a clearer check for null values. (Revision 15691)
  • Database Snapshot Fix: Resolved an issue that prevented DatabaseSnapshot functionality from working correctly in MDrivenServerCore. (Revision 15661)
  • Admin Database Self-Repair: The self-repair functionality on startup has been improved to better handle issues within the admin database. It can now:
    • Detect XML errors within the admin database and suggest potential fixes.
    • Automatically fix missing tables in the database, preventing errors during the database evolution process. (Revision 15655)

These improvements provide more robust database schema management and help ensure data consistency within your application.

This is not an exhaustive list of all changes included in this release. Please refer to the changelog for more details.

MDriven - April 2024

Designer

AutoDiagram:

  • 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.

ViewModelEditor:

  • 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).

CloudForm:

  • 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.

Other:

  • 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.

Turnkey

SignalR:

  • 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: https://wiki.mdriven.net/index.php?title=StartupViewTemplate
  • Moved the StartupViewTemplate_AppOverride.htm file to the views\turnkey\ directory for better organization.

Server

Logging:

  • 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.

Framework

ViewModelEditor:

  • 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: https://wiki.mdriven.net/Documentation:MDriven_Framework
  • 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."

Other:

  • 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.